2013-06-18 43 views
0

我已經使用WIX創建了MSI。這適用於安裝/卸載。WIX-重新安裝MSI - 不註冊組件

當我試圖重新安裝MSI時,它顯示了很多錯誤。從日誌中可以看出,無法註冊組件。

ComponentRegister(ComponentId={A35FD4BC-66CA-4BE0-BCBA-EDEA2DFC7FD3},KeyPath=C:\Program Files\Common Files\{Appname}\Config\0.reg,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=0) 
MSI (s) (54:F0) [13:56:53:819]: Note: 1: 1402 2: UNKNOWN\Components\CB4DF53AAC660EB4CBABDEAED2CFF73D 3: 1450 

MSI (s) (54:F0) [13:56:53:835]: Note: 1: 2205 2: 3: Error 

MSI (s) (54:F0) [13:56:53:835]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 2908 

DEBUG: Error 2908: Could not register component {A35FD4BC-66CA-4BE0-BCBA-EDEA2DFC7FD3}. 

MSI (s) (54:F0) [13:57:16:602]: Note: 1: 2205 2: 3: Error 

MSI (s) (54:F0) [13:57:16:617]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 

MSI (s) (54:F0) [13:57:16:633]: Product: -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2908. The arguments are: {A35FD4BC-66CA-4BE0-BCBA-EDEA2DFC7FD3}, , 

任何幫助表示讚賞。

回答

0

你試過完全卸載它嗎?檢查組件是否在卸載時被移除。標記爲永久(組件屬性)的組件不會被刪除。 Neve被刪除意味着他們在註冊表中有一個「隱藏的」註冊。

+0

我已卸載完全,卸載完成後刪除鍵,但HKLM/software/microsoft/windows/currentversion/installer中存在一個密鑰CB4DF53AAC660EB4CBABDEAED2CFF73D存在且密鑰值爲C:\ Program Files \ Common Files \ {APPNAME} \配置\ 0.reg。如何從HKLM/software/microsoft/windows/currentversion/installer中刪除組件 – user2437605

+0

組件在卸載過程中未被刪除。只有註冊表鍵被刪除。這裏是我使用的代碼 如何在卸載過程中刪除組件。 – user2437605

+0

如果你在msi中查看組件表中的哪些屬性有這個特定組件? – Joshi

0

組件註冊由兩個東西標識,它的PATH及其註冊表項。看起來像當您嘗試重新安裝時,它與最初安裝的KeyPath不匹配。 - 在嘗試安裝之前卸載了嗎? - 當您嘗試第二次安裝時,您是否傳遞了正確的安裝位置,正如我從日誌中看到KeyPath包含{Appname},似乎安裝路徑在重新安裝時沒有通過。