具有自定义ID的InstallShield安装程序,而不会使签名无效

时间:2016-12-16 01:01:05

标签: c# .net windows installshield

我正在寻找一种方法来提供签名的,自定义的InstallShield安装程序,该安装程序可以在不破坏签名或不必重新签名安装程序的情况下注入一小段信息吗?

用户将从我的网站下载它,但它需要专门为该用户注入的自定义ID。我看过对sidecar文件的引用,但我找不到任何文档。

那么,有没有办法将这些数据注入安装程序而不会使签名失效?

1 个答案:

答案 0 :(得分:0)

到目前为止,这个问题和评论缺少一个重要警告: 对MSI或EXE文件的任何更改都会导致代码签名签名无效 (除非生成的文件具有完全相同的文件哈希,这极不可能)。

是否有理由不能重新签署主包裹?请注意,您可以使用signtool编写PowerShell或批处理脚本,以便快速轻松地对EXE进行代码签名。您可以一步添加自定义数据并重新签名包。如果需要,您甚至可以为MSM和EXE使用不同的代码签名证书。

您可以使用预先签名的合并模块(MSM)完成非常类似的操作 - 将您的主安装程序作为已签名的合并模块进行编写。然后,将已签名的MSM包含在未签名的Setup EXE包中,并将自定义数据添加到父EXE安装程序。可以通过多种不同方式添加自定义数据,例如组件中的文本文件,嵌入到自定义操作中,或者作为InstallShield中的支持文件。 不幸的是,这意味着您的主EXE安装程序是未签名的,不建议这样做。