Lev*_*Lev 10 .net c# teamcity nuget nuget-package-restore
有时会出现此错误,通常此步骤正常,但在大约10%的情况下,它会失败并显示以下消息.
Nuget安装程序步骤是第一个构建步骤,并且在TeamCity中也启用了"clean checkout",因此不应该有任何使用文件的进程.
[restore]进程无法访问文件'C:\ BuildAgent\work ...\packages\Microsoft.Bcl.Build.1.0.21\Microsoft.Bcl.Build.1.0.21.nupkg'因为它正在被使用另一个过程.
[恢复]进程退出代码1
的根本原因" 我的文件正在由另一个进程 "
您可以做几件事,具体取决于根本原因:
你使用MSBuild的并行构建功能:根据他的博客,它看起来与NuGet包恢复效果不佳,因为它可以为每个项目运行并行包恢复(如果有几个项目需要Microsoft.Bcl.Build ...... Boom! ).禁用并行构建或在解决方案之外执行包还原(在命令行步骤中).顺便说一下,使用解决方案MSBuild进行NuGet还原不是一个好习惯.
还有另一个过程:
使用进程监视器/资源管理器找出锁定文件的进程.它可以是一个防病毒,文件索引工具,一个在后台运行的附加构建代理实例.由于锁不是永久性的,对于这类问题,十分之一是非常多的,我不敢打赌这是根本原因.
没有其他过程:
这是Teamcity NuGet安装程序中的一个错误.然后,您可以通过调用命令行步骤替换该步骤,nuget restore并检查它是否修复了您的问题.
用你自己的nuget插件来诊断自己:
NuGet插件代码可以在这里找到.这意味着您可以编译自己的版本,并在发生这类问题时附加调试信息(例如,锁定文件的进程列表).或者甚至更有用,您可以在文件被锁定时添加重试步骤.
编辑:对于那些在Unix上使用Teamcity的人......
我试图在Unix上安装Teamcity,并使用NuGet插件在mono上构建.顺便说一下,NuGet插件在Unix上根本不起作用(JetBrains不支持).我甚至尝试修复它,但用命令行替换它更容易.
| 归档时间: |
|
| 查看次数: |
2502 次 |
| 最近记录: |