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

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

任何人都可以了解我是如何看到这种情况,解码这些描述符,停止InstallShield生成Darwin Descriptors,还是以其他方式修复我的安装程序?

有帮助吗?

解决方案

我理解darwin描述符是Windows安装程序服务跟踪COM入口点回原始.MSI(因此它可以治愈.dll,如果它被删除等)。 MSI保持实际价值。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top