Installshield 2011 - 在“嵌入清单”和签名之间的构建时崩溃

时间:2014-06-25 11:07:12

标签: windows-8 windows-8.1 installshield installshield-2011

升级到Windows 8& 8.1机器我的所有InstallShield项目在签名时开始失败。在将清单嵌入到setup.exe之后或期间发生此错误,并出现以下错误:

  

异常ACCESS_VIOLATION(0xc0000005)在地址0x76b34db0尝试读取   地址0x00000001。

     

文件:C:\ Program Files   (x86)\ InstallShield \ 2011 \ System \ isdev.exe版本:17.0.0.714   例外:c0000005地址:76b34db0访问类型:   读取访问地址:00000001

     

...

当我在崩溃后选择调试时,我在Visual Studio中得到一个异常,说Wintrust.dll发生了错误:

  

isdev.exe中0x76B34DB0(wintrust.dll)的未处理异常:   0xC0000005:访问冲突读取位置0x00000001。

构建日志中的错误消息以:

结尾
  

ISDEV:错误-7132:流式ISSetup.dll支持发生错误   文件S:\ InstallShields \ Server Fix Pack_IS2011 \ Setup.inx嵌入   将SetupExe.Admin.manifest清单显示到setup.exe开始签名   8F8D.tmp ...已成功签名:8F8D.tmp

要在较小的项目中解决这个问题,我删除了所有签名选项,特别是使用spc和pvk证书/私钥文件。

成功安装后无需签名。我只使用pfx证书文件重新引入了签名。但是,我无法选择在包裹中签署文件"。

有些项目没有这些步骤有效。有没有人遇到过Windows 8 / 8.1的这些问题?有没有解决方法?

由于

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题, isdev.exe 中的访问冲突。我关闭了你提到的所有签名,重建了它并且它有效。我转回签名,现在有效。

作为参考,我使用 pfx证书文件包中的文件

感谢您的帮助!!!

备注:确保您的计算机上已注册证书,可能与之相关。祝你好运!

答案 1 :(得分:0)

我以这种方式解决了这个问题:

除了安装程序包以外,请正常签名。然后在构建后事件中添加以下行:

"C:\Program Files (x86)\InstallShield\2011\System\Signtool.exe" sign /f "<private Cert File>.pfx" /p <password> /du "http://<whatever>" /t "<timestamp server. See your cert supplier>" "%<ISReleasePath>%\<Name>.msi"

现在所有内容都已签名,UAC也可以正常工作。