新的SignTool证书和密码会导致MSBuild/WiX后生成事件失败



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

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

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

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

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

DLL PostBuild事件调用SignTool如下:

"$(SolutionDir)Certificatessigntool.exe" sign /f "$(SolutionDir)CertificatesMyCertificate.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

我不得不为特殊字符使用转义字符。

Brian Sutherland是正确的

最新更新