2016-07-29 9 views
1

Я хочу выполнить мой .exe-файл, который отображает MessageBox и выходит после нажатия OK. CustomAction должен быть выполнен после завершения установки, но перед отображением диалогового окна Finish. Проблема в том, что я не могу установить главное окно установщика, чтобы дождаться нажатия кнопки ОК (диалог Finish отображается напрямую, поэтому главное окно можно полностью закрыть без нажатия кнопки ОК). WiX Toolset версия: v3.10Набор инструментов WiX выполняет пользовательское действие после установки и ждет завершения

продукта Исходный код:

<Property Id="WixShellExecTarget" Value="[#ExeId]" /> 
<InstallExecuteSequence> 
    <Custom Action="LaunchExe" After="InstallFinalize" /> 
</InstallExecuteSequence> 
<CustomAction Id="LaunchExe" BinaryKey="WixCA" DllEntry="WixShellExec" Execute="immediate" Return="check" Impersonate="yes" /> 

компонентов исходного кода:

<Component Id="ExeId" Directory="APPLICATIONFOLDER" Guid="*"> 
    <File Id="ExeId" Source=".\ExeName.exe" KeyPath="yes" Checksum="yes" /> 
</Component> 

ответ

2

Ok я mannaged, чтобы запустить его. Результирующий код:

<InstallExecuteSequence> 
    <Custom Action="LaunchExe" Before="InstallFinalize">NOT Installed AND NOT REMOVE</Custom> 
    </InstallExecuteSequence> 
<CustomAction Id="LaunchExe" FileKey="ExeId" ExeCommand="" Execute="deferred" Return="check" Impersonate="no" /> 

Обратите внимание, что NOT Installed AND NOT REMOVE условие должно было быть добавлено, потому что окна не удалось удалить приложение.