2012-08-30 21 views
2

當我嘗試和執行次要升級到我的申請,我啓動安裝程序和(取決於我嘗試設置的組合),我得到無論是:無法獲得MSI次要升級工作

  • 維修/刪除對話框
  • 提示安裝目錄

我不認爲我應該得到這兩種提示。我主要期望安裝程序自動應用升級並不提示任何內容。我覺得我在Visual Studio安裝項目做正確的一切:

  • 升級從1.0.0版本1.1.0
  • 左側的商品代碼相同的
  • 更新包代碼
  • 離開了升級代碼相同
  • 推出與參數REINSTALLMODE安裝重建= vomus REINSTALL = ALL

我已經嘗試了關於前夕ry代碼/標誌和技術的組合,但似乎無法獲得應用的更新。

任何我可以嘗試的想法?

+0

其他詳細信息:我編輯了產品代碼並開始工作。當提示修復/刪除選項時,我選擇了修復並應用升級。無論如何擺脫這個對話?如果我使用REINSTALLMODE/REINSTALL標誌運行安裝程序,是不是應該是自動的? – Dan

回答

1

爲了得到它的工作我:

  • 從1.0.0版本升級到1.1.0
  • 離開了產品代碼相同(說沒有時,由Visual Studio提示)
  • 更新封裝代碼(Visual Studio中這樣做自動)
  • 沒有改變升級代碼
  • 推出與參數REINSTALLMODE安裝重建= vomus REINSTALL = ALL

就像我在我的問題中指出的那樣,它似乎在工作。我可以成功應用升級。但是,當我運行安裝程序時,仍會提示您使用修復/刪除選項。但是,我猜這是一個不同的問題。

0

第一只是第一件事:你確定你沒有再使用兩個MSI文件 GUID軟件包,或在工作部署和測試過程中的一些問題?

嘗試使用新GUID重新構建MSI文件,以將它們從任何現有緩存版本中「解除耦合」,然後再次嘗試測試安裝。更改軟件包代碼和產品代碼。更好的是:在乾淨的虛擬機上測試這些新版本,以確保正確的測試環境不受過去的罪惡影響。由於包含guid衝突,您的開發人員系統可能會在其Windows安裝程序數據庫中存在gremlins。如果是這種情況,軟件包安裝會變成全部XFiles - 最奇怪的事情會發生。


更多細節: 如果包GUID是兩個MSI文件相同,Windows安裝程序將它們視爲通過定義相同的文件 - 無論它們包含的內容。這可能會導致各種難以清理和調試的奇怪問題。請注意,即使您忘記只更新一次,也會發生這種情況,因爲MSI的安裝會導致它在C:\ Windows \ Installer文件夾(此文件夾被隱藏並受保護)中緩存在系統中。如果啓動了具有相同GUID的MSI文件(至少這是Windows Installer早期版本的情況 - 現在可能有修復),則此緩存副本將被重新使用。

如果您使用的是Installshield,則應啓用「始終生成包裝GUID」功能以確保永不發生這種情況。對於每一個版本,程序包GUID都應該隨時更改 - 沒有任何理由保持它的硬編碼。我相信WIX負責自動生成包GUID,除非您特別重寫它。

+0

謝謝......但是,我再次檢查並且Visual Studio自動更改了軟件包代碼。 – Dan