TeamCity恢复nuget包 - 在恢复包时运行时间过长

时间:2018-03-12 15:15:00

标签: nuget teamcity nuget-package-restore

我正在尝试为TeamCity使用nuget安装插件,但在运行之后,在我的解决方案中恢复和安装所有软件包需要很长时间。

有人可以在TeamCity中帮助恢复软件包吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

我正在研究和解决同样的问题。我的解决方案最多需要 20 分钟(在糟糕的时候)来解决所有 NuGet 包。这是我发现的:

  1. TeamCity 不使用 nuget 缓存,因为他们为保存解析包的目录重新分配了 env 变量。您可以在此处找到有关此的详细信息 https://teamcity-support.jetbrains.com/hc/en-us/community/posts/115000160524/comments/360000087900 这就是他们这样做的原因https://github.com/NuGet/Home/issues/4277
  2. 我不知道为什么,但 TeamCity v3.5、v4.6 提供的 NuGet 版本进行还原操作的速度比其他版本慢。

我做了什么:

  1. 就我而言,我已将 env.NUGET_PACKAGES 的覆盖添加到主代理目录 (%teamcity.agent.home.dir%/nuget-cache ) 在我的 团队城市项目。这使得恢复稳定不超过 10 分钟。 请小心,因为 TeamCity 代理可能会清除工作和临时目录,并且您的缓存将不稳定
  2. 我添加了 NuGet.exe 文件的最新稳定版本(在我的例子中是 v5.8.1)https://www.nuget.org/downloads。然后,我为 TeamCity 中的 NuGet 安装步骤(NuGet.exe 选择框)选择了自定义选项,并在解决方案中设置了我的 NuGet.exe 文件的路径。

完成这两个步骤后,我的解决方案的 NuGet 还原最多需要 1.5 分钟,这对我来说没问题。