簡體   English   中英

無法讓MSI次要升級工作

[英]Can't get MSI minor upgrade to work

當我嘗試對我的應用程序應用次要升級時,我啟動安裝程序並(根據我嘗試的設置組合),我得到一個:

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

我不相信我應該得到這些提示中的任何一個。 我主要期望安裝程序自動應用升級而不提示任何內容。 我想我在Visual Studio安裝項目中正確地做了一切:

  • 將版本從1.0.0升級到1.1.0
  • 將產品代碼保持不變
  • 更新了包裹代碼
  • 保留升級代碼相同
  • 使用參數REINSTALLMODE = vomus REINSTALL = ALL啟動安裝程序

我已經嘗試了幾乎所有代碼/標志和技術的組合,但似乎無法應用更新。

關於我還能嘗試什么的任何想法?

要讓它發揮作用我:

  • 將版本從1.0.0升級到1.1.0
  • 保留產品代碼相同(當Visual Studio提示時表示否)
  • 更新了包代碼(Visual Studio自動執行此操作)
  • 沒有更改升級代碼
  • 使用參數REINSTALLMODE = vomus REINSTALL = ALL啟動安裝程序

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

首先要做的事情是您確定沒有在兩個MSI文件中重用包GUID ,或者在部署工作和測試期間的某些時候重新使用包GUID

嘗試使用新GUID重建兩個MSI文件,以將它們與任何現有緩存版本“解耦”,然后再次嘗試測試安裝。 更改包裹代碼和產品代碼。 更好的是:在干凈的虛擬機上測試這些新版本,以確保不受過去罪惡影響的正確測試環境。 由於包guid沖突,您的開發人員系統可能在其Windows安裝程序數據庫中有gremlins。 如果是這種情況,軟件包安裝將成為總XFiles - 最奇怪的事情可能發生。


更多詳細信息 :如果兩個MSI文件的包GUID相同,則Windows Installer將根據定義將它們視為同一文件 - 無論它們包含什么。 這可能會導致各種難以清理和調試的奇怪問題。 請注意,即使您忘記更新一次也會發生這種情況,因為安裝MSI會導致它被緩存在C:\\ Windows \\ Installer文件夾中的系統上(此文件夾被隱藏並受到保護)。 如果啟動了具有相同GUID的MSI文件,則將重新使用此緩存副本(至少對於早期版本的Windows Installer來說是這種情況 - 現在可能會對此進行修復)。

如果您使用的是Installshield,則應啟用“始終生成打包GUID”功能以確保永遠不會發生這種情況。 包GUID應始終針對每個構建進行更改 - 沒有任何理由保持硬編碼。 我相信WIX會自動生成包GUID,除非你專門覆蓋它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM