【问题标题】:InstallShield: Darwin descriptorsInstallShield:达尔文描述符
【发布时间】:2010-09-17 06:59:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: com dll registry installshield regsvr32


    【解决方案1】:

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

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

    【讨论】:

    • 您的意思是在我正在构建安装程序的机器上卸载了 MSI?这是一台与我正在安装安装程序的机器不同的机器,它是一个干净的 Windows XP 虚拟机。我还没有从任何一个卸载 MSI...我什至不确定我知道如何卸载,尽管它在 VM 上并不重要,因为我目前总是从 clean 进行测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 2011-04-10
    • 2020-09-06
    相关资源
    最近更新 更多