2011-05-08 62 views
1

我有一個簡單的msi安裝程序setup.exe(通過VS2010創建)。第一次安裝一切正常,問題出在第二次安裝: 1. msi設置爲: a.RemovePreviousVersions設置爲TRUE。 2.我升級了安裝版本(對於第二個安裝)的編號,然後按下確定 當我問是否要升級產品代碼時。msi安裝程序不會提示用戶升級

此時我重新編譯了msi並雙擊setup.exe。 問題: 我希望安裝程序會檢測到已經安裝了以前的版本 並詢問我是否要刪除\升級它。 會發生什麼情況是,安裝程序會自動將安裝的產品升級到新版本而不詢問任何內容...

是否有任何方法配置msi項目以便提示「升級\刪除」屏幕? ??

非常感謝..

回答

1

我沒有使用VS安裝程序,但它是嚴格限制。技術上的升級包中必須

  1. 一個新的產品編號
  2. 同樣的升級代碼爲你以前的產品

您也需要添加FindRelatedProducts和RemoveExistingProducts到InstallE表中正確的順序。您可以在其上添加一些MSI guis,但這意味着您將不得不使用Orca編輯器手動編輯msi。一個更簡單的方法可能是使用Wix工具包,你有更多的自由。 您有問題已經回答there

1

,我發現這個article非常有幫助。特別是:

•如果新的MSI文件具有相同的 產品代碼和PackageCode作爲一個已經安裝了 產品, 的Windows表明您必須修復 或刪除產品

enter image description here

刪除卸載產品,但 修復可能會更混亂。

修復不會使用您的新MSI文件 來修復產品,也不會 更新您以前安裝的內容。 而是修復現有的 已安裝產品。也就是,它的行爲 就好像你去原來的MSI 文件一樣用來安裝現有的 產品,選中上下文菜單, 並選擇修復。 (注:修復可以 也添加啓動/刪除程序 )

•如果新的MSI文件具有相同的 的ProductCode爲已安裝的產品 但不同PackageCode,你會 收到一條消息,表明即 該產品的另一版本是 已安裝。