我在Visual Studio 2012中使用限制版本的Install Shield创建了一个安装程序。
我有一个数字证书,我想添加到安装程序中。
我想使用Install Shield的SingleImage功能为我的客户创建并提供单个安装文件(例如setup.exe)。但是,似乎我必须通过Install Shield将数字证书附加到一个msi文件中,该文件嵌入在setup.exe中。
我发现在运行安装程序时,将数字证书放在setup.exe上会导致告知用户发布者是未知的。如果是其他话,那就没有正确部署数字证书。
我是否可以访问msi文件以向其添加数字证书?如果是这样,怎么样?
答案 0 :(得分:27)
我将回答我自己的问题。自从发布我的问题后,我发现Visual Studio 2012中的Install Shield限量版可以设置为签署安装程序(如果你有合适的数字证书)。
可在以下位置找到:Builds / Express / SingleImage。有一个名为“签名”的选项卡。输入数字证书文件的路径/文件名,证书密码,并指定要签名的输出文件。安装Shield然后在构建时签署安装程序。
我很抱歉过早地提出这个问题。我应该先做更多的研究。
答案 1 :(得分:1)
IS 2015之前的InstallShield版本不支持SHA-256证书。所以,虽然迈克的回答是正确的,但如果没有新的IS,它将不再对您有任何好处,因为微软自2016年1月1日起需要SHA-256。
但是......在他们必须知道他们在做什么之前,我会暂时放下一点秘密。见this thread on the IS forum。
如果他们认真对待,这是重要的部分:
"如果您需要立即签署这种签名,您可以签名 稍后将文件归档,或者为signtool.exe创建一个包装器 拦截我们传递给的命令行参数 \ System \ signtool.exe并做了其他事情。"
正如Mike所说,你不能简单地签署外部exe,但是通过替换他们的signtool.exe你也应该能够签署内部msi。
我现在正在考虑实施这项工作。如果其他人试图这样做,请告诉我们您的结果。