我有一個MSI程序集,這是一個升級。升級代碼在先前版本和新升級程序集之間保持不變。我還設置了RemovePrevious屬性,以便在安裝升級之前刪除舊版本。Windows 3.1安裝程序卸載後立即重新安裝舊版本,而不是安裝新的升級
我看到舊版本的卸載按預期發生。但是,Windows Installer 3.1立即轉向嘗試重新安裝舊版本,然後再繼續安裝新版本。我已經通過更改新版本中的第一個自定義安裝對話框來驗證這一點,並在第一次安裝新版本時看到它很好。但是升級時看到的對話框是舊版本發佈時的對話框。我甚至用消息框顯示來重建舊版本,以驗證安裝程序在卸載後確實重新安裝舊版本,而不是轉到新的升級版本。
使用MSIExec不會顯示任何記錄的錯誤來解釋這種奇怪的行爲,我找不到任何有助於確定這種情況發生的文檔。
任何人有任何想法,爲什麼這種行爲正在發生,以及如何去解決它?
我還應該提到,安裝和卸載的自定義操作包含在常見的steps.exe中。它是由我的VS 2005解決方案的一部分製作的。自定義操作中沒有輸入功能。因此,假設正確的調用是由以下正式聲明來覆蓋安裝程序的: protected override void OnBeforeInstall(); public override void Install(); public override void Uninstall(); 由於Uninstall()完成無錯誤,所以不清楚爲什麼安裝程序調用其他兩個安裝函數自定義操作而不是轉向新的升級程序集? – Del 2011-05-26 23:35:12