TeamCity中的NuGet错误:进程无法访问该文件,因为它正由另一个进程使用

Jir*_*iri 9 teamcity nuget

我们使用TeamCity(9.0)作为CI服务器来构建,测试和部署多个应用程序.最近我们看到偶然(每30/40版本中有一个)NuGet(2.8.3)错误如下:

[还原]进程无法访问文件'C:\ BuildAgent\work\e32cbd0940f38bf .....\packages\Newtonsoft.Json.5.0.6\Newtonsoft.Json.5.0.6.nupkg'因为正在使用它另一个过程.

实际包装似乎不时有所不同.

我们怀疑它与同一解决方案中多个项目中引用的相同包有关,但我希望NuGet能够通过过滤掉重复项而不是尝试多次检索同一个包来正确处理这个问题,从而结束将包还原到工作文件夹时使用写锁定.

作为每个构建配置的第一步,我们将"NuGet安装程序"步骤设置为"恢复".我试图摆弄它的设置(不同的'更新模式',' - NoCache',旧的NuGet版本(2.8.0)),但无济于事.

是否有其他人遇到过类似的问题,如果有的话,对如何确保不会发生此错误有任何建议.

任何帮助将不胜感激!

glm*_*glm 9

我和Jenkins有同样的问题并修复了通过在nuget restore命令中添加"-DisableParallelProcessing",最终命令如下所示:

nuget restore "%WORKSPACE%\Solutions\App\App.sln" -DisableParallelProcessing
Run Code Online (Sandbox Code Playgroud)


Ali*_*ina -1

您可以使用“锁定进程”选项打开构建功能Swabra(需要 handle.exe)。并检查构建完成后是否有任何文件被锁定。如果没有锁定的文件,则尝试使用命令行构建步骤而不是 NuGet 安装程序来运行Nuget 。如果重现该问题,则很可能意味着该问题与 NuGet 相关。