无法注册DLL/OCX:使用Inno Setup 5.2.3时,RegSvr32返回退出代码0xC0000005失败。

4
我正在尝试在我创建的安装程序中使用Inno Setup注册COM DLL。 在Vista上进行测试安装时,我会遇到以下错误:
无法注册DLL / OCX:RegSvr32以退出码0xC0000005失败。
我点击"忽略",我的应用程序似乎已经安装,但我必须打开一个命令提示符(作为管理员),然后regsvr32来安装COM DLL。 有没有办法在Inno Setup中自动完成这个过程?
2个回答

3
不要使用自注册(即regsvr32),微软在Windows Installer文档中提供了更多原因的信息。最常见的情况是,在自注册过程发生时,应用程序正在寻找的某些依赖项尚未出现(即随应用程序部署的Microsoft DLL)。
InnoSetup能否编写注册表项?这就是regsvr32所完成的所有工作...您可以使用WiX工具“heat”来提取regsvr32会放置的相关注册表信息,然后将其手动移植回InnoSetup代码。

你确定吗?Inno Setup实际上只能使用regsvr32来安装DLL或OCX,任何Windows Installer的功能在这里并没有真正帮助。 - mghie
1
InnoSetup不能写入注册表项吗?这就是regsvr32所能实现的全部...你可以使用WiX工具heat来提取与regsvr32相同的相关注册表信息,然后手动将其移植回InnoSetup代码中。 - saschabeaumont
那是有趣的信息;把它放到你的答案里,我会投赞成票。Inno Setup 肯定可以写入注册表。但我认为这不会影响 OP 遇到的问题,这更像是一个权限问题,在这种情况下,写入注册表也可能失败。 - mghie

1

0xC0000005 = 异常访问冲突

DLL正在执行某些操作,导致regsvr32崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接