1

我的 InstallShield 安装程序似乎没有正确注册它的几个 COM DLL,即使我已经在安装程序中刷新了它们的 COM 信息。如果我在安装后手动运行 regsvr32,一切都很好。

我注意到安装后,我的组件的注册表中有 InprocServer32 值,这些值包含看起来随机的字符串,我相信这是Darwin 描述符,我知道如果存在,它将覆盖明文路径位置。当我手动运行 regsvr32 时,这些达尔文描述符消失了。我目前的假设是这些描述符中编码的信息不正确,因此当我的程序尝试实例化 COM 组件时,它使用了不正确的 Darwin 描述符信息并且失败了,即使 DLL 的明文路径是正确的。

任何人都可以阐明我如何查看是否是这种情况、解码这些描述符、阻止 InstallShield 生成 Darwin 描述符或以其他方式修复我的安装程序吗?

4

1 回答 1

1

我理解 darwin 描述符是 Windows 安装程序服务跟踪 COM 入口点回到原始 .MSI (所以它可以修复 .dll 如果它被删除等)。MSI 保存实际值。

大概因为你已经重建了 COM 信息,你有没有从你的机器上卸载 MSI 并重新安装(所以 msiexec 不仅仅是进行维护安装而不是完整安装)。

于 2008-10-17T08:51:19.203 回答