由于项目对程序集进行签名,导致TFS中的Build无法执行,表现为编译出现错误。
在网上查找的解决方法是,在TFS的Build服务器上使用生成执行帐号(非执行人帐号,而是TFS Build的服务账号)执行VSTS的IDE程序,并打开一次签名程序(可以在Build的临时目录中找到程序)。此时会弹出对话框要求输入密码。输入完成后,再自动生成就没问题了。
这种方法在VS2008的项目中通过,但是2005的项目失败。最终想到其生成都是调用MSBuild来做,于是查询到使用MSBuild程序来生成csproj文件,来完成签名密码的输入。
具体方法如下:
- 使用Build服务账户打开cmd。进入MSbuild目录。
- 使用MSBuild编译csproj文件。如MSBuild.exe e:/build/abc/ccc.csproj
- 输入签名密码
- 使用TFS生成
参考MSDN:TFSBuild fails with error MSB4018 "ResolveKeySource" task failed unexpectedly