2011-04-27 64 views
0

我在Installshield中開發了一個基本的MSI軟件包。爲了安靜地進行安裝,我只在構建時包含了MSI命令行參數「/ qb +」。如預期的那樣靜默安裝它。在Installshield中運行無提示安裝和無任何參數卸載

但是,當我再次執行相同的EXE以打算卸載以前安裝的組件時,它實際上會執行重新安裝或修復,而不是卸載。我想啓動相同的EXE進行安裝,然後卸載。可能嗎?

問候,
作者Abhijit

回答

2

這是因爲維護默認情況下對已安裝的軟件包進行,默認維護什麼都不做。您可能可以通過類似於How to get msiexec to install and/or reinstall as necessary的方法破解此操作,但不是使用REINSTALL,而是嘗試設置REMOVE並在UILevel> 3或未安裝時清除它。

+0

謝謝!有效。 – Abhijit 2011-04-28 10:34:16

+0

再想一想,您可能還想對其他一些屬性進行設置(例如,爲條件添加「或重新安裝」,「或者ADDLOCAL」,「或ADDSOURCE」等)。正如Glytzhkof所說,這是不尋常的,應該不會用於廣泛分發的軟件包中。 – 2011-04-28 12:41:45

1

目前還不清楚這是否是用於測試或公開發布的EXE。如果它是公開發布的,我會而不是改變它的工作原理是否符合「最少驚訝原則」。換句話說,用戶應該知道會發生什麼。

我通常會避免setup.exe啓動程序,並且贊成單個壓縮的MSI文件。它會安裝和卸載更快,因爲它不運行setup.exe的所有啓動邏輯(檢查任何先決條件,檢查Installshield引擎,未知的Installshield的東西 - 天知道他們在慢慢做什麼),以及它會在資源管理器中向用戶提供上下文菜單,然後右鍵單擊MSI並選擇「卸載」以輕鬆卸載軟件包。

相關問題