【发布时间】:2016-01-03 11:16:22
【问题描述】:
自使用 Visual Studio 2015 以来发生构建错误。在 Visual Studio 2015 中构建时,这种情况很少发生。在 TeamCity 中构建时,这种情况经常发生。
[Visual Studio 2015 中的错误]
- 从文件“CompanyName.snk”中提取公钥时出错:进程无法访问文件“C:\Users\UserName\AppData\Local\Temp\tmp2FF6.tmp”,因为它正被另一个进程使用. CompanyName.Project.DAL D:\Projecten\CompanyName\Repository\Source\Components\CompanyName.Project.DAL\vbc
http://i.stack.imgur.com/hKbbe.png
[TeamCity 中的错误]
- CSC 错误 CS7027:使用文件“CompanyName.snk”中的公钥签署输出时出错——进程无法访问文件“C:\BuildAgents\Gamma\temp\buildTmp\tmpD91D.tmp”,因为它正被另一个进程。
【问题讨论】:
-
看起来像是多核构建的问题。您是否尝试过使用单个 MSBuild 实例(没有 /m 开关)构建您的解决方案?您是否尝试过诊断 MSBuild 的详细输出日志?您是否尝试确定哪个进程拥有临时文件?
-
上周我开始在我们的 Jenkins 构建服务器上看到这个问题!我在构建时使用 4 个内核 (/m:4)。它似乎是随机发生的,并且每次都有不同的项目。我在本地从未遇到过错误。仅来自构建服务器。
-
开始在我们的构建服务器中突然看到这一点,结果是 Windows Defender 的最新更新(2020 年 7 月),请参阅我的评论 here。
标签: msbuild teamcity visual-studio-2015 snk