2012-08-13 117 views
0

我使用WiX 3.5製作安裝程序,我需要複製許多文件和文件夾。 我用heat.exe來做到這一點,它工作正常。 但是我需要在安裝過程中調用bat文件,而bat文件存在於上面提到的那些文件夾中。該bat文件依賴於其他一些文件。 我可以調用批處理文件,但到那時其他文件未加載。 下面是我用於運行bat文件的自定義操作。WiX運行批處理文件,在文件複製之前

<Custom Action="InstallFeature" After="InstallFinalize"><![CDATA[ 
    (&TypicalFeature=3) AND NOT(!TypicalFeature=3) 
]]></Custom> 

需要幫助,可能是文件正在加載後,我打電話給bat文件。

感謝 拉維小號

回答

3

調用從MSI的批處理文件是真的非常糟糕的主意。 MSI是聲明式的 - 您只需定義安裝成功後系統應該是什麼樣子,如果出現問題,MSI可以回滾更改。

但是,通過使用批處理文件,Windows安裝程序不知道對系統進行了哪些更改,並且無法回滾任何內容。

我會研究批處理文件正在做什麼,並在WiX中或通過C++/C#中的自定義操作以及相應的回滾操作來實現它正在執行的操作。 (原生代碼是最好的,但它很難,託管代碼是第二好的,VBScript是最後的手段 - 但仍然比批處理文件更好)

+0

有什麼辦法通過WIX創建符號鏈接?(mklink)@ saschabeanumount – Karthick 2013-01-09 14:42:07

+0

不是我所知道的,你需要調用一個自定義動作。我不相信它是由MSI支持的(因此Wix) – saschabeaumont 2013-01-25 09:45:32