使用snk密钥签名时构建错误

Bar*_*VdA 7 msbuild teamcity snk visual-studio-2015

自从使用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',因为它正由另一个进程使用.

http://i.stack.imgur.com/rbgHx.png

Fra*_*ers 6

我知道自从被问到已经有一段时间了,但是当我使用SO作为自己的参考时,我也遇到了这个问题,所以我想分享我的解决方案。

.snk文件用于签署项目。您可能需要重新制作一个。

  • 右键单击您的项目,选择属性。
  • 单击签名。
  • 单击“对程序集签名”旁边的复选框。
  • 在标有“选择强名称密钥文件”的下拉列表中,单击“新建”。
  • 根据需要填写对话框,尤其要注意密钥文件名。当您按确定时,这将生成一个新的.snk文件。
  • 保存项目并重建。
  • 这将在您的项目中使用新的.snk并解决错误。

希望这可以帮助。


Ale*_*osh 4

尝试清理构建使用的临时文件夹。当临时文件夹包含大量文件时,我遇到过不同类型的问题。

一些工具使用 GetTempFileName,当 temp 有大量文件时,它们会出现错误

如果使用GetTempFileName方法创建超过 65535 个文件而不删除以前的临时文件,则该方法将引发 IOException