如何让Nuget恢复更快?

时间:2017-08-31 13:59:35

标签: nuget azure-devops nuget-package nuget-package-restore azure-artifacts

我们正在使用 VSTS 托管构建服务器构建CD管道。恢复Nuget需要3分钟以上。这太时间了。

如何让它跑得更快?我们可以使用任何类型的缓存系统吗?

3 个答案:

答案 0 :(得分:0)

Caching is currently on the feature pipeline(带有待定日期)。同时,您可以使用Upload Pipeline Artifact / Download Pipeline Artifact任务将结果存储在Azure DevOps帐户中,以加快/下载速度。

Work-in-progress can be tracked here

同时,Microsoft 1ES (one engineering system, internal organization) has released their internal solution that uses Universal Packages to store arbitrary packages in your Azure DevOps account。这是非常快的,因为它可以同步先前软件包之间的增量。 There is a sample on how to configure your Azure Pipeline to store the NuGet package cache in your Sources Directory in order for the task to cache them

private static void Main()
{
    var words = new[] {"dog", "coyote", "fox"};

    var input = "The quick brown fox jumps over the lazy dog";

    var wordCount = words.Sum(word => Regex.Matches(input, word).Count);

    // wordCount = 2
}

答案 1 :(得分:0)

这不是一个确切的答案,但是将CI从VSTS迁移到“ Github操作”,使我们能够利用Github的cache来缓存部署之间的整个packages文件夹,并且现在要快一点。 / p>

PS。 Github操作实际上是使用相同的Azure工作者,因此从技术上讲,我们仍在使用Microsoft ...

答案 2 :(得分:0)

在我的场景中,Nuget 还原在交互式运行时运行得很快,但在通过 CD 管道 (Jenkins) 运行时非常。将 revocation check mode 设置为 offline 将我的 Nuget 恢复时间从 13 分钟以上缩短到 30 秒以下(我找到了此解决方案 here

在运行 Nuget restore 之前,我在构建脚本中设置了一个环境变量:

  • SET NUGET_CERT_REVOCATION_MODE=offline

免责声明:关闭证书吊销会产生影响 - 请参阅此 link