2012-01-17 76 views
0

我在使用InstallShield 2010創建的MSI正確卸載時遇到問題。根據日誌,我的InstallShield項目包含5個不同的功能,所有功能都正確安裝。InstallShield 2010不會卸載功能

安裝日誌

Action start 14:17:21: InstallValidate. 
MSI (s) (60:48) [14:17:21:819]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '87c91cda6f92ea4989c01c65f841e520'. 
MSI (s) (60:48) [14:17:21:819]: Feature: F1; Installed: Absent; Request: Local; Action: Local 
MSI (s) (60:48) [14:17:21:819]: Feature: F2; Installed: Absent; Request: Local; Action: Local 
MSI (s) (60:48) [14:17:21:819]: Feature: F3; Installed: Absent; Request: Local; Action: Local 
MSI (s) (60:48) [14:17:21:819]: Feature: F4; Installed: Absent; Request: Local; Action: Local 
MSI (s) (60:48) [14:17:21:819]: Feature: F5; Installed: Absent; Request: Local; Action: Local 

...

=== Logging stopped: 1/17/2012 14:21:37 === 
MSI (c) (14:1C) [14:21:37:566]: Note: 1: 1707 
MSI (c) (14:1C) [14:21:37:566]: Product: Foo -- Installation operation completed successfully. 

MSI (c) (14:1C) [14:21:37:566]: Windows Installer installed the product. Product Name: Foo. Product Version: . Product Language: 1033. Installation success or error status: 0. 

然而,當我使用的功能相同的MSI一個顯示爲未安裝,隨後不卸載試圖卸載。

卸載日誌

MSI (s) (38:04) [14:31:09:730]: Doing action: InstallValidate 
Action ended 14:31:09: SetODBCFolders. Return value 0. 
MSI (s) (38:04) [14:31:09:730]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '63009fbd7945fe4d8897ff58c1aa8e21'. 
MSI (s) (38:04) [14:31:09:730]: Feature: F1; Installed: Absent; Request: Null; Action: Null 
MSI (s) (38:04) [14:31:09:730]: Feature: F2; Installed: Local; Request: Absent; Action: Absent 
MSI (s) (38:04) [14:31:09:730]: Feature: F3; Installed: Local; Request: Absent; Action: Absent 
MSI (s) (38:04) [14:31:09:730]: Feature: F4; Installed: Local; Request: Absent; Action: Absent 
MSI (s) (38:04) [14:31:09:730]: Feature: F5; Installed: Local; Request: Absent; Action: Absent 

在安裝最新的MSI,卸載後,日誌看起來像安裝日誌以上。即使MSI沒有看到正在安裝的F1功能並重新安裝,但由於卸載失敗而導致系統中已存在的所有文件都不會被較新的文件覆蓋。

任何幫助將不勝感激。先謝謝你。

+0

是否有條件安裝F1功能?如果是這樣,你是如何配置條件的? – 2012-01-18 07:27:05

+0

F1按以下條件安裝: 級別0: NOT((IIS_VERSION> =「#7」)AND(NETVERSION> =「3.5.30729.01」)AND(ORACLEVERSION> =「11.1.0.7.0」)AND (POWERSHELLVERSION> =「2.0」)和(WSEVERSION><「Version = 3.0」)) 我檢查了上述所有屬性的安裝/卸載日誌,它們都匹配。這種狀況並沒有改變,過去一直很好。 – SadZ 2012-01-18 17:16:54

回答

1

賠率是你應該看到下面的生成警告:

Val0005:一種功能狀態「XXXXXXX」可能設置INSTALLLEVEL此功能到零上運行。如果在安裝時啓用此功能,則必須編寫類似的邏輯以確保它在維護模式下也處於啓用狀態,否則在升級時將忽略此功能。

基本上,如果此功能安裝,您必須確保在維護過程中不要將其設置爲0。如果它確實會像你所看到的那樣被忽略。

+0

我完全刪除了該功能的條件,它現在似乎正在卸載。現在,我只是玩弄這個條件,直到我找出它在卸載時不工作的原因。謝謝! – SadZ 2012-01-18 19:51:15

0

我有類似的問題。
要檢查的事項:

Installshield的成分,禁用共享,以避免引用計數
組件共享:爲引用計數沒有

檢查註冊表。搜索此列表以查找文件: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ SharedDLLs
如果您開發的是早期的錯誤安裝程序,則可能會保留錯誤的引用計數。您可以通過安裝在新的唯一文件夾中來驗證此問題,並查看問題是否仍然存在。

Installshield,檢查重複的組件。由於舊的條目沒有完全刪除,因此您可能會安裝兩次相同的文件。

打開詳細日誌記錄,以調查:
https://support.microsoft.com/en-us/kb/2545723
日誌文件命名MSI * .LOG將如結束。 C:\ Users \ Name \ AppData \ Local \ Temp
搜索未卸載的文件並與其他人進行比較。
在我的情況行動:爲壞的行​​動,行動:爲其他人缺席。