2010-01-08 128 views
8

我想通過msi安裝程序升級我的產品。 msi的升級代碼保持不變,因爲它是同一個產品系列。即使我更改msi的版本/產品代碼以進行更新,也只是告訴我該產品已安裝或要求我對其進行維修。它永遠不會提供替代當前安裝的更新選項。如何通過msi升級

我使用Visual Studio 2008專業版生成MSI安裝程序

+1

你用什麼工具生成你的MSI?視覺工作室?維克斯?還有別的嗎? – 2010-01-08 15:10:48

+0

Visual Studio 2008 Pro – Kai 2010-01-08 15:27:50

回答

9

當您更改安裝項目的Version屬性,Visual Studio中應提示您也改變ProductCode。你必須這樣做。然後,您還必須將RemovePreviousVersion屬性設置爲true。確保UpgradeCode保持不變。

這可能是最簡單的方法,從閱讀你的問題,你在找什麼。請注意,這更像是卸載,然後重新安裝,而不是「升級」本身。

+1

-1兩者都稱爲'升級'。 MSI規則將重要升級定義爲卸載/重新安裝,並在同一系列的UpgradeCodes下對ProductCode進行更改。輕微升級僅更改兩個不同版本之間不同的組件。 – 2010-01-13 03:28:29

+1

@DSims:是的,我熟悉MSI的定義和固有的語義歧義。感謝您指出了這一點。我只提到卸載/重新安裝,因爲我認爲這可能會阻止一些混淆。許多人在創建初始安裝程序時被這種行爲所困擾。雖然它被稱爲升級,但該語言不符合大多數非安裝人員理解該術語的方式。就操作系統而言,它是一款全新的產品。 – 2010-01-13 13:06:50

+0

@Dave:對不起,很迂腐。不幸的是,MSI/Windows安裝程序的語義精度很關鍵。它本質上是一個脆弱的領域,MS構造它的方式,具體詞彙具有特定的技術和業務後果。 – 2010-01-15 16:07:27