2013-05-03 36 views
2

根據我在安裝程序中設置的屬性,我會發現確定在安裝中的某些點調用哪些自定義操作非常有用。動態更改WIX安裝順序中的CA

例如;如果我想使用單獨的DLL來連接不同版本的SQL(具體來說SSRS 2005/2008R2)。

假設識別我應該運行哪個CA的操作(通過找出安裝程序指向的SSRS版本)是否使用「立即」執行,並且可能或可能不會執行的CA取決於此結果並且是「延遲」

如何在安裝過程中動態地在安裝的某些部分更改哪些延遲CA執行?這甚至可能嗎?

((維克斯2.0優選的但更高版本的答案是可以接受的))

回答

3

在該修改的機器狀態(它聽起來像您正在編寫)立即自定義動作應改爲表數據驅動的自定義動作和/或MSI中的屬性來計劃適當的延遲自定義操作以更改機器。

要做到這一點,所有的自定義操作的定義(CustomAction元素在你的.wxs文件),但只有眼前的自定義操作計劃(在InstallExecuteSequenceCustom/@Action元素)。立即自定義操作查看,制定決策,爲延遲自定義操作設置CustomActionData,然後使用適當的延遲自定義操作的名稱調用::MsiDoAction(),以將延遲的自定義操作添加到該點的安裝腳本。稍後,當Windows安裝程序執行安裝腳本(安裝的延遲部分)時,延遲自定義操作將啓動其所有數據。

如果您正在查找示例,則WiX工具集自定義操作始終會執行此操作。