我正在使用wix安裝程序覆蓋(閱讀:修改現有的註冊表值),添加新的等。卸載時,我需要恢復它們回到它們的原始狀態(我修改)。由於這不被Wix支持,因此我必須使用自定義操作(因爲我讀了),我想運行一個exe文件,它將使用reg import
運行.reg文件。根據此網站:http://www.installsite.org/pages/en/isnews/200108/index.htm我的自定義操作必須運行After="InstallFinalize"
,因爲wix回滾會刪除我的註冊表導入(作爲回滾的一部分)。 所以基本上看起來像這樣:安裝程序修改註冊表值,卸載程序刪除所有觸及的註冊表更改(部分回滾),我的exe將恢復它們。Wix - 如何在卸載後執行installfinalize後運行exe文件?
所以我按照他怎麼樣,開始我與提升權限的exe等 http://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html
<Component Id="registry" Guid="*">
<File Id="regexe" Source="RegistryRollback.exe"/>
<File Id="regfile" Source="Reg_rollback.reg" />
</Component>
<Property Id="LaunchRegExe" Value="[#regexe]" />
<CustomAction Id="LaunchRegExe" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="check" Impersonate="no"/>
<Custom Action='LaunchRegExe' After='InstallFinalize'>Installed AND NOT UPGRADINGPRODUCTCODE</Custom>
沒有,但我得到一個Error 19 ICE77: LaunchRegExe is a in-script custom action. It must be sequenced in between the InstallInitialize action and the InstallFinalize action in the InstallExecuteSequence table C:\Merlin\Main\Demo\KioskDemoSetup\nw_setup\nw.wxs 250 1 nw_setup
謝謝您的幫助!
在這裏沒有看到整個圖片...你在哪裏修改註冊表值?您擔心回滾操作會在哪裏恢復您的更改?從我們在這裏看到的,除了延遲操作必須在'InstallInitialize'和'InstallFinalize'之間運行,您的操作只能在卸載時運行,取消操作時的操作會有所不同。意味着您的exe只能在卸載時運行,在延遲的上下文中,在(un)安裝完成之前的某個時候。 – 2014-10-31 00:13:39