新的SignTool证书和密码导致MSBuild / WiX后期构建事件失败

时间:2017-01-11 19:14:54

标签: visual-studio-2012 visual-studio-2013 msbuild wix signtool

过去4年来,我在我的DLL项目和我的WiX项目(用于构建MSI)中的部署解决方案中一直使用PostBuild事件。最近,我们收到了自前一个证书到期后的新证书和密码。

我无法构建我的解决方案,因为DLL的PostBuild事件和WiX PostBuild事件都失败了。

我在DLL项目和WiX项目中注释掉了SignTool命令,两个项目都正确构建。

当PostBuild事件中包含以下signtool命令时,我收到PostBuild以-1退出的错误

EXEC : SignTool error : The specified PFX password is not correct.

DLL PostBuild事件调用SignTool,如下所示:

"$(SolutionDir)\Certificates\signtool.exe" sign /f "$(SolutionDir)\Certificates\MyCertificate.pfx" /p Pass%word& -t http://timestamp.verisign.com/scripts/timstamp.dll /v "$(TargetDir)MyDll.dll"

尝试在命令提示符下运行相同的命令时,如果双引号不是用双引号括起来,则会收到以下消息。

SignTool Error: Missing filename.
'e' is not recognized as an internal or external command, operable program or batch file.

尝试通过命令行运行SignTool时,如果密码用双引号括起来,则可以正常工作。

无论在用双引号括起密码方面做了什么,项目都不会编译。

我已经读过Visual Studio(和msbuild?)扫描输出中的某些单词并确定进程失败。我注意到,在运行SignTool流程时,我在流程结束时收到以下内容,并想知道这是否与 errors 一词有关。

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0

1 个答案:

答案 0 :(得分:0)

我必须为特殊字符使用转义字符。

Brian Sutherland是正确的