4
執行多個發射條件我已經成功地得到維克斯啓動退出我的應用程序,但不知道如何使用WixShellExecTarget財產安排兩個自定義操作。如何在安裝程序退出
一個CA是啓動一個應用程序,另一個是基於來自另一個CA的URL的網頁。如果選中了相應的複選框,則會啓動它們。
<!-- Custom action for executing app -->
<Property Id="WixShellExecTarget" Value="[#Application.exe]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
<!-- Custom action for executing Webbrowser -->
<Property Id="???" Value="[CONFIGWIZARDURL]" />
<CustomAction Id="LaunchConfigWizard" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
你能給我得到這個工作的任何幫助,將不勝感激。
乾杯, 傑米
[編輯]我試過下面的建議,我不明白這一點設置第二個採取行動的適當值。它不會去www.google.com,我建議:
<Publish Dialog="MyExitDialog" Control="Finish" Event="DoAction" Value="SetExec1"><![CDATA[NOT Installed]]></Publish>
<Publish Dialog="MyExitDialog" Control="Finish" Event="DoAction" Value="DoExec"><![CDATA[LAUNCHCAPTURE = "1" AND NOT Installed]]></Publish>
<Publish Dialog="MyExitDialog" Control="Finish" Event="DoAction" Value="SetExec2"><![CDATA[NOT Installed]]></Publish>
<Publish Dialog="MyExitDialog" Control="Finish" Event="DoAction" Value="DoExec"><![CDATA[LAUNCHCONFIGWIZARD = "1" AND NOT Installed]]></Publish>
Property(S): LAUNCHCONFIGWIZARD = 1
MSI (s) (5C:DC) [14:41:02:119]: PROPERTY CHANGE: Adding CONFIGWIZARDURL property. Its value is 'http://www.google.com'.
MSI (c) (DC:60) [14:41:16:166]: PROPERTY CHANGE: Adding WixShellExecTarget property. Its value is 'C:\...Application\MyApplication.exe'.
Action ended 14:41:16: SetExec1. Return value 1.
MSI (c) (DC:60) [14:41:16:181]: Doing action: DoExec
Action 14:41:16: DoExec.
Action start 14:41:16: DoExec.
MSI (c) (DC:60) [14:41:16:181]: Creating MSIHANDLE (3) of type 790542 for thread 11104
MSI (c) (DC:E0) [14:41:16:181]: Invoking remote custom action. DLL: C:\Temp\MSIA7A.tmp, Entrypoint: WixShellExec
MSI (c) (DC!8C) [14:41:16:244]: Creating MSIHANDLE (4) of type 790541 for thread 10636
MSI (c) (DC!8C) [14:41:16:244]: Creating MSIHANDLE (5) of type 790531 for thread 10636
MSI (c) (DC!8C) [14:41:16:244]: Closing MSIHANDLE (5) of type 790531 for thread 10636
MSI (c) (DC!8C) [14:41:16:447]: Closing MSIHANDLE (4) of type 790541 for thread 10636
MSI (c) (DC:E0) [14:41:16:447]: Closing MSIHANDLE (3) of type 790542 for thread 11104
Action ended 14:41:16: DoExec. Return value 1.
MSI (c) (DC:60) [14:41:16:447]: Doing action: SetExec2
Action 14:41:16: SetExec2.
Action start 14:41:16: SetExec2.
MSI (c) (DC:60) [14:41:16:447]: PROPERTY CHANGE: Deleting WixShellExecTarget property. Its current value is 'C:\...Application\MyApplication.exe'.
Action ended 14:41:16: SetExec2. Return value 1.
Action ended 14:41:16: MyExitDialog. Return value 1.
謝謝,對不起,它需要很長時間已經離開,所以沒有機會測試這一點。 – Jamie
非常酷的解決方案,因爲WixShellExecTarget的其他重複屬性,可以在一個MSI中使用兩個WixShellExec自定義操作。謝謝! –
我試圖使用這個,但它似乎從來沒有在任何版本的工作。我收到以下錯誤: 錯誤找到重複的符號'ControlEvent:ExitDialog/Finish/DoAction/DoExec/NOT Installed'。這通常意味着Id是重複的。檢查以確保給定類型(文件,組件,功能)的所有標識符都是唯一的。 –