我们需要通过带有硬件令牌的EV代码通过InstallShield 2013 express签署我们的安装,但是无法导出私钥证书文件,因此唯一的方法是使用DigiCertUtil工具手动签署最终的exe文件,但是这不是解决方案,因为当安装程序调用msi文件时,Windows仍会弹出未知发布者,是否有人在此之前解决此问题?
谢谢!
答案 0 :(得分:0)
我花了一天的时间来弄清楚如何实现这一目标,但我终于设法让它在虚拟项目上工作。
设定:
我们的想法是从InstallShield的Precompression
和Postbuild
事件中运行批处理命令。 .msi 在Precompression
事件中签名,设置可执行文件在Postbuild
事件中签名。
第1步 - 启用批代码签名
第2步 - 准备InstallShield项目
cmd /c "<SignToolFolder>\signtool.exe" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /sha1 <CertificateThumbprint> <ISReleasePath>\<ISProductConfigName>\<ISReleaseName>\DiskImages\DISK1\Test.msi
cmd /c "<SignToolFolder>\signtool.exe" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /sha1 <CertificateThumbprint> <ISReleasePath>\<ISProductConfigName>\<ISReleaseName>\DiskImages\DISK1\setup.exe
。再次,根据需要更改setup.exe路径和名称<强>说明强>
<Var>
访问路径变量,而不是像常规Windows命令行那样访问%Var%
。