第一只是第一件事:你確定你沒有再使用兩個MSI文件 GUID軟件包,或在工作部署和測試過程中的一些問題?
嘗試使用新GUID重新構建MSI文件,以將它們從任何現有緩存版本中「解除耦合」,然後再次嘗試測試安裝。更改軟件包代碼和產品代碼。更好的是:在乾淨的虛擬機上測試這些新版本,以確保正確的測試環境不受過去的罪惡影響。由於包含guid衝突,您的開發人員系統可能會在其Windows安裝程序數據庫中存在gremlins。如果是這種情況,軟件包安裝會變成全部XFiles - 最奇怪的事情會發生。
更多細節: 如果包GUID是兩個MSI文件相同,Windows安裝程序將它們視爲通過定義相同的文件 - 無論它們包含的內容。這可能會導致各種難以清理和調試的奇怪問題。請注意,即使您忘記只更新一次,也會發生這種情況,因爲MSI的安裝會導致它在C:\ Windows \ Installer文件夾(此文件夾被隱藏並受保護)中緩存在系統中。如果啓動了具有相同GUID的MSI文件(至少這是Windows Installer早期版本的情況 - 現在可能有修復),則此緩存副本將被重新使用。
如果您使用的是Installshield,則應啓用「始終生成包裝GUID」功能以確保永不發生這種情況。對於每一個版本,程序包GUID都應該隨時更改 - 沒有任何理由保持它的硬編碼。我相信WIX負責自動生成包GUID,除非您特別重寫它。
其他詳細信息:我編輯了產品代碼並開始工作。當提示修復/刪除選項時,我選擇了修復並應用升級。無論如何擺脫這個對話?如果我使用REINSTALLMODE/REINSTALL標誌運行安裝程序,是不是應該是自動的? – Dan