2

自从升级到 Windows 8 和 8.1 机器后,我所有的 InstallShield 项目都开始无法签名。该错误发生在将清单嵌入 setup.exe 之后或期间,并出现以下错误:

地址 0x76b34db0 的异常 ACCESS_VIOLATION (0xc0000005) 试图读取地址 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 时遇到过这些问题吗?有什么解决方法吗?

谢谢

4

2 回答 2

1

我遇到了同样的问题,isdev.exe中的访问冲突。我像你提到的那样关闭了所有签名,重建它并且它起作用了。我重新打开了签名,现在可以了。

作为参考,我使用的是pfx 证书文件,并且包中的签名文件no .

谢谢您的帮助!!!

旁注:确保您在机器上注册了证书,这可能与它有关。祝你好运!

于 2014-12-02T18:10:36.560 回答
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 也可以正常工作。

于 2018-08-01T13:48:58.007 回答