alo每個人。WiX無條件執行應用程序
我的問題是雙重的。我有一個我一直在研究的WiX項目,並且負責讓它執行程序執行,而不管用戶按下取消,安裝被中止(通過已有的版本)或用戶成功完成安裝。
我目前使用內置的diaglog系統:
<UIRef Id="WixUI_InstallDir" />
我現在已經非常成功,在安裝完成後執行應用程序。困難在於應用程序與安裝程序位於同一位置,因此我無法保證它會在哪裏。因此,在安裝成功後,我使用以下方法執行程序:
<InstallExecuteSequence>
<Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom>
<RemoveExistingProducts After="InstallInitialize" />
<Custom Action="PropertyAssign" Before="InstallFinalize">NOT Installed</Custom>
<Custom Action="LaunchFile" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
<CustomAction Id='PropertyAssign' Property='PathProperty' Value='[SourceDir][DRIVEREXEC]' />
<CustomAction Id="LaunchFile" Property="PathProperty" ExeCommand='/S' Return="asyncNoWait" />
這兩個自定義操作用於在安裝完成後執行應用程序。因此,當程序存在時,我不能分配兩個自定義操作。當兩個自定義操作具有相同的設置時,OnExit =「error」會引發異常。
如何執行應用程序,位置未知 - 但假定與安裝程序位於同一目錄中 - 無條件地執行?
我感謝大家的時間和親切的回覆
Rob,謝謝你的回覆。我處於不幸的境地,我需要與可能與媒體一起打包的一個或多個可執行文件一起工作。如果是,我必須運行它們。爲了解決這個問題,我在完成時使用了SourceDir,以及一個參數來設置我的位置。 我的結局是在取消,中止等情況下 - 仍然有可執行文件被觸發。你的建議提到了如何讓複選框出現在任何情況下(中止 - 等),但它不告訴我如何告訴安裝程序它在哪裏。我很抱歉,我對此很陌生,可能我錯過了。 – Hewlett123 2010-08-19 15:18:02
我沒有關注你的問題的這一部分,「但它並沒有告訴我如何告訴安裝者它在哪裏」。你能澄清一下嗎? – 2010-08-19 20:00:30
對不起延遲,我非常感謝你和我一起度過的所有的幫助和時間。在某種程度上,我需要安裝者自覺(關於它的位置)。安裝程序需要知道它在磁盤上的位置。這就是我使用SourceDir的原因。 (安裝程序說)我知道我位於c:\ temp \ install,現在從c:\ temp \ install執行installer2。另一方面,如果有人移動安裝程序,比如說c:\ place,我希望安裝程序轉而嘗試從c:\ place執行installer2。 – Hewlett123 2010-08-26 15:24:04