您好,
當 Windows Installer 安裝應用程式失敗,且復原程序也無法完整執行時,通常需要檢查復原指令碼、檔案鎖定、安裝套件中的自訂動作,以及安裝過程中未成功回復的系統變更。
首先,請勿直接刪除 Windows Installer 暫存檔或相關登錄機碼。 這可能破壞安裝程式的修復及解除安裝功能。建議先保留安裝記錄,再確認失敗發生在哪個階段。
- 啟用詳細安裝記錄
使用以下命令重新執行安裝,產生完整記錄:
msiexec /i "C:\Install\package.msi" /L*V "C:\Temp\install.log"
開啟記錄並搜尋 Return value 3,檢查其前面的執行內容,找出最先失敗的安裝動作。同時留意 Rollback、CustomAction、Access denied 及 File in use 等訊息。
- 檢查復原指令碼及暫存檔案
確認系統磁碟空間、Windows Installer 服務狀態,以及相關目錄的存取權限。Windows Installer 會在安裝期間建立復原資料,以便還原被取代或刪除的檔案。
不要直接刪除 %WINDIR%\Installer 內的檔案,否則可能影響其他應用程式的修復及解除安裝功能。
- 排查遭鎖定的檔案
使用 Microsoft Sysinternals Process Explorer 或 Handle.exe,確認是否有其他程序占用安裝目標檔案。
例如:
handle.exe "C:\Program Files\Vendor\App"
確認占用程序後,先正常停止相關服務或應用程式,再重新執行修復。不要直接強制終止系統程序。
- 檢查自訂動作
如果安裝套件包含自訂動作,應確認延後執行的自訂動作是否具有對應的復原動作。
復原動作必須在對應的延後執行動作之前排入執行順序,確保安裝失敗時能夠撤銷已完成的系統變更。若自訂動作修改了服務、檔案或登錄機碼,必須確認這些變更都有相應的復原邏輯。
- 安全恢復系統狀態
確認安裝程序已完全停止,且沒有其他安裝作業正在執行後,優先使用原廠安裝套件提供的修復或解除安裝功能。
如果仍有殘留的服務、檔案或登錄設定,應依照原始安裝設定進行修復,不要直接清除 Windows Installer 資料庫或手動刪除系統安裝資料。
結論: 應先從詳細安裝記錄找出第一個失敗的動作,再確認復原指令碼、檔案占用情況及自訂動作的復原邏輯。只有確認根本原因後,才進行針對性的修復,避免破壞其他應用程式的安裝資訊。
希望以上內容能幫助您更深入了解並解決問題。如果這個回答對您有所幫助,歡迎接受此答案。如有其他問題,請隨時留言。祝您有美好的一天!
Domic Vo.