新的 SignTool 证书和密码导致 MSBuild/WiX postbuild 事件失败

New SignTool Certificate and Password causes MSBuild/WiX postbuild events to fail

在过去的 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 Event 调用 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.[=15= 这个词有关]

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

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

布赖恩·萨瑟兰是正确的