升级到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的这些问题?有没有解决方法?
由于
答案 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也可以正常工作。