2013-07-27 23 views
0

我有一個與Exe1-> Msi1-> Exe2-> Msi2的鏈。爲基於FileSearchRef的ExePackage設置InstallCondition

我需要一個FileSearch結果來決定Exe2是否安裝在它的InstallCondition中。

我有一個FileSearch定義在Bundle之外的Fragment中,我指的是Chain上面的Bundle。

如何確保在執行Msi1後FileSearch完成?使用RegistrySearch代替FileSearch一個MsiPackage

類似的問題: WiX Bundle bal:condition - util:RegistrySearch variable always false

UPDATE: 我從鏈刪除EXE2,我試圖從MSI1遞延自定義操作執行EXE2。 Exe2可以自行運行,但從自定義操作運行時會失敗。需要深入挖掘

+0

可能重複的[如何在基於文件內容的鏈中爲ExePackage設置InstallCondition?](http://stackoverflow.com/questions/17896071/how-to-set-installcondition-for-exepackage-in-chain-基於文件的內容)你提出的問題有點不同,但是在語義上它與另一個問題非常接近 –

+0

是的,你可以關閉這個問題或者爲了語義上的差異。 –

回答

2

燒傷不會那麼奏效。它在鏈開始被應用之前處理InstallCondition,因此鏈中的任何事情都不會影響鏈的其餘部分。

+0

感謝您的信息。 Msi2中的自定義操作可以將InstallCondition設置爲刻錄嗎? –

+0

不,自定義操作無法在執行期間更改鏈。 –

0

像Bob提到的那樣,InstallCondition在鏈條啓動之前處理,而不是在兩者之間。

MSI1是否總是包含您要搜索的文件?而不是檢查文件的存在,爲什麼不檢查MSI1是否安裝正確?如果是這種情況,您可以使用VITAL屬性。

Vital YesNoType指定包是否必須成功才能繼續。默認的「是」意味着如果包失敗,則鏈將失敗並回滾或停止。如果指定「否」,那麼即使軟件包報告失敗,鏈也會繼續。

所以你經常刻錄BA將不支持,你可以寫一個自定義BA來處理這個或者打破你的鏈2,EXE1和MSI1,第二個EXE2 msi2。

+0

Msi2必須在鏈中運行。 Exe2是需要根據客戶端在Msi1的自定義對話框中進行選擇安裝的可選軟件包。 –

+0

檢查更新後的答案 – Isaiah4110

+0

拆分鏈如何提供幫助?然後我就可以讓支持條件退出EXE2主鏈? –