2008-10-15 39 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