2014-02-07 81 views
0

我有一個捆綁了多個MSI的WiX託管引導程序應用程序(使用C#/ WPF自定義用戶界面)。用戶跑到哪裏要安裝的第一個MSI後,我的MBA稱爲維克斯基地BootstrapperApplication.Engine.Apply()造成BootstrapperApplication.Error觸發事件,這種信息的情況:如何檢測系統上現有的「已暫停」安裝?

ErrorType: WindowsInstaller 
ErrorCode: 1704 
ErrorMessage: An installation for Intel(R) Smart Connect Technology is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes? 

,而不是當它發生時處理這個錯誤,我d更喜歡檢查機器上是否存在此條件(「另一個MSI」的「當前掛起」安裝),並阻止用戶啓動安裝程序的「應用」操作。

如何檢測系統上現有的「當前掛起」安裝,最好使用WiX DTF庫?


更新:標誌Christopher Painter's answer,即使我無法找到任何文件來支持它,我無法重現的場景我自己。我也發現這個問題"WIX Detect Pending Reboot",這也可能是相關的,但再次有一些有用的官方文件。

回答

0

您不應該需要DTF MSI互操作。只需檢查下面的註冊表項:

HKLM \軟件\微軟\的Windows \ CurrentVersion \ Installer程序\ INPROGRESS

+1

是否有任何MSI文件,說明這個REG關鍵?例如,我可以確定哪些安裝程序被暫停,因此我可以告訴最終用戶? –

+0

不是我所知道的。在__MsiPromptForCD互斥體幫助主題中有一個引用,但它的存在並未在SDK中的其他任何位置定義。我的理解是,在該鍵下方會有一個條目指示您掛起的安裝。我必須在虛擬機上進行測試才能知道。 –

相關問題