如何在VS 2010中自动对使用WiX构建的MSI进行代码签名?

时间:2016-03-20 01:55:58

标签: windows visual-studio-2010 wix windows-installer code-signing

我正在使用Visual Studio 2010和WiX构建我的MSI项目。我想在成功编译后自动签署发布版本。 (注意,不是Debug构建,以节省编译时间。)

到目前为止,我在解决方案配置中选择了'Release'时添加了这个“Post-build”事件:

enter image description here

转换为此命令:

"D:\C++\My Project\MSI Installer\MyProject-Installer\..\..\..\CodeSigner.exe" "D:\C++\My Project\MSI Installer\MyProject-Installer\MyProject-Installer\bin\Release\MyProject-Installer.msi"

嗯,问题是$(TargetPath)不是那个。结果MSI的实际路径是美国英语版本的实际路径:

D:\C++\My Project\MSI Installer\MyProject-Installer\MyProject-Installer\bin\Release\en-us\MyProject-Installer.msi

问题1:您在\en-us填写的内容中看到$(TargetPath)文件夹丢失了。

问题2: VS 2010尝试为ReleaseDebug运行此构建后脚本。我只需要Release,就像我能够使用VS 2008一样。

那么任何想法如何解决这两个问题?

1 个答案:

答案 0 :(得分:0)

if $(ConfigurationName) == Debug (
xcopy "$(ProjectDir)bin\Debug\Blobs.msi" "$(SolutionDir)debugDir" /Y /r
) ELSE (
 xcopy "$(ProjectDir)bin\Release\Blobs.msi" "$(SolutionDir)releaseDir" /Y /r
)