我必须使用WiX构建基于MSI的安装程序,我需要在运行命令操作之前设置环境.MY_HOME
我有一个组件:
<Component Id="SEMYHOME"
Guid="*my guid*">
<CreateFolder />
<Environment Id="MY_HOME"
Action="set"
Part="all"
Name="MY_HOME"
Permanent="no"
System="yes"
Value="[APPLICATIONPATH]myapp"/>
</Component>
Run Code Online (Sandbox Code Playgroud)
然后我有一个自定义动作:
<CustomAction Id="InstallMyService"
Directory="INSTALLDIR"
ExeCommand='"[INSTALLDIR]myapp\install_service.bat" install'
Execute="immediate"
Return="ignore"/>
<InstallExecuteSequence>
<Custom Action="InstallMyService"
After="InstallFinalize"/>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
注意:此操作需要MY_HOME在运行之前设置变量.
安装此MSI时,我得到一个日志,显示MY_HOME在运行自定义操作"InstallMyService"之前设置了该变量,但是安装我的服务的命令仍然失败.我发现原因是当命令调用时,MY_HOME仍未设置.
安装完成后,MY_HOME设置为预期,但自定义操作失败:(
我该如何解决这个问题?