2008-10-15 42 views
1

我的InstallShield安装似乎并不正确注册它的几个COM DLL文件的,即使我已经刷新在安装程序中为他们COM信息。如果我安装后手动运行regsvr32,一切都很好。我注意到在安装后,我在注册表中为我的组件包含随机查找字符串的InprocServer32值,我相信它是达尔文描述符,我知道它将覆盖明文路径位置(如果存在)。当我手动运行regsvr32这些达尔文描述符消失。我现在的假设是,这些描述符编码的信息是不正确的,所以当我的程序试图实例化COM组件,它使用不正确的达尔文描述信息而失败,即使在DLL中明文路径是正确的。的InstallShield:达尔文描述

任何人都可以阐明如何我可以看到,如果是这样的话,解码这些描述符,从产生达尔文描述符停止的InstallShield,或以其他方式解决我安装任何光线?

三江源提前!

回答

1

我理解达尔文描述符是windows安装程序服务,跟踪COM入口点回到原来的.MSI(所以它可以治愈.dll,如果它被删除等)。 MSI持有实际价值。

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

+0

你的意思是卸载MSI我建设上的安装程序在机器上?这是我安装安装程序的独立机器,它是一个干净的Windows XP虚拟机。我还没有从MSI卸载MSI ...我甚至不知道如何去做,尽管它在VM上应该没有问题,因为我现在总是从干净测试中进行测试。 – NeilDurant 2008-10-18 02:32:36