我有一个在Visual Studio 2012中使用Install Shield的有限版本创建的安装程序。
我有一个要添加到安装程序中的数字证书。
我想使用Install Shield的SingleImage功能来创建单个安装文件(例如setup.exe)并将其交付给我的客户。但是,似乎我必须通过Install Shield将数字证书附加到嵌入在setup.exe中的msi文件中。
我发现,在运行安装程序时,将数字证书放在setup.exe上会导致告诉用户发布者是未知的。换句话说,这并没有正确地部署数字证书。
我是否可以访问msi文件以向其中添加数字证书?如果是这样的话,是怎么做的?
发布于 2014-02-02 11:32:15
我要回答我自己的问题。自从发布了我的问题后,我发现Visual Studio 2012中的Install Shield的限量版可以设置为对安装程序进行签名(如果你有合适的数字证书)。
这可以在Builds/Express/SingleImage下找到。有一个名为"Signing“的选项卡。输入数字证书文件的路径/文件名、证书密码,并指定要签名的输出文件。Install Shield然后在构建时对安装程序进行签名。
很抱歉,我问得太早了。我应该先做更多的研究。
发布于 2016-03-04 23:37:39
IS 2015之前的InstallShield版本不支持SHA-256证书。因此,虽然Mike的答案是正确的,但没有新的IS对您不再有任何好处,因为Microsoft从2016年1月1日起需要SHA-256。
但是..。在他们知道他们在做什么之前就泄露了这个小秘密。参见this thread on the IS forum。
以防他们将其删除,这里是重要的部分:
“如果您立即需要这种签名,您可以稍后自己对文件进行签名,或者为signtool.exe创建一个包装器,该包装器拦截我们传递给\System\signtool.exe的命令行参数并执行其他操作。”
因此,正如Mike所说,您不能简单地签署外部exe,但通过替换他们的signtool.exe,您应该也能够签署内部msi。
我现在正在考虑实施这项工作。如果其他人尝试这样做,请让我们知道您的结果。
https://stackoverflow.com/questions/21505985
复制相似问题