0

我有一個msi安裝程序(VS2008安裝項目)。我想要發生的事情是,安裝人員首先要檢測軟件是否已安裝在機器上。如果是,則卸載該軟件,然後繼續安裝。msi安裝程序卸載

有許多屬性,如DetectNewerInstalledVerision,RemovePreviousVersions和ProductCode似乎暗示這是可能的。目前,我必須每次重新生成ProductCode,並在已安裝的程序列表(控制面板 - >添加/刪除程序)中獲得一個附加條目。

有沒有辦法讓我可以配置安裝程序自動卸載任何以前的版本?

回答

0

你是對的 - 這是可能的。

基本上,你需要改變兩個屬性。首先,您需要設置RemovePreviousVersions,以便實現您想要的結果。然後,爲了識別舊版本,還需要爲每個部署設置版本號。每次發佈版本時,手動更新此號碼(更高的號碼),或者使用部署自動更新。當安裝程序運行時,它將檢測以前安裝的任何版本是否爲較低的編號並自動刪除它們。

+0

只是要說清楚:版本號需要在安裝項目中增加,不一定要安裝項目。然後Visual Studio會要求分配一個新的* ProductCode *,這需要用yes來確認。另外請記住,不要更改* UpgradeCode *。 – 2010-06-30 15:52:37

+0

我們在談論哪個版本號? AssemblyInfo類有兩個,一個用於設置項目,另一個用於項目 - >屬性窗口? – 2010-06-30 20:06:45

+0

@ pm_2 - @ 0xA3作了正確的說明,因爲它需要在安裝項目中增加。 – JasCav 2010-06-30 20:19:17