Wix条件自定义操作
我有一个Wix项目,它有几个msi和一个引导程序来运行这些msi 在其中一个msi中,我想运行一个基于参数属性的自定义操作 在我的Wix条件自定义操作,wix,windows-installer,Wix,Windows Installer,我有一个Wix项目,它有几个msi和一个引导程序来运行这些msi 在其中一个msi中,我想运行一个基于参数属性的自定义操作 在我的Product.wxs中,我有以下代码: <CustomAction Id="MyAction" FileKey="myapp.exe" ExeCommand="-a -b" Execute="deferred" Return="check" /> <InstallExecuteSequence> ...
Product.wxs
中,我有以下代码:
<CustomAction Id="MyAction" FileKey="myapp.exe" ExeCommand="-a -b"
Execute="deferred" Return="check" />
<InstallExecuteSequence>
...
<Custom Action="MyAction" After="CustomActionInstallService">
NOT Installed AND NOT PATCH AND MYPROPERTY=1
</Custom>
</InstallExecuteSequence>
但是自定义操作不会运行
为了进行测试,我更改了自定义操作,如下所示:
<Custom Action="MyAction" After="CustomActionInstallService">
MYPROPERTY=1
</Custom>
MYPROPERTY=1
在相同的结果下,自定义操作不会运行
有什么想法吗
提前感谢在引导程序(burn)脚本中,是否将属性传递给MSI?应该在burn项目中执行类似的操作以传递属性:
<Bundle>
<Variable Name="MYPROPERTY" bal:Overridable="yes"/>
<Chain>
<MsiPackage>
<MsiProperty Name="MYPROPERTY" Value="[MYPROPERTY]"/>
</MsiPackage>
</Chain>
</Bundle>
您可以共享日志文件吗?是否调用CustomActionInstallService?您是否尝试过MYPROPERTY=“1”为什么要使用自定义操作来安装服务,而不是使用ServiceInstall/ServiceControl?@ChristopherPaint这只是此操作的名称。不多了。问题在于条件,我只是在检查是否也存在设计问题。我的直觉是有。我试图提供全面的建议并解决大问题。你的属性元素是什么样子的?你只是在猜测,因为问题中没有足够的信息来提供答案。问题还可能是他没有将MYPROPERTY声明为安全的。由于没有指示CustomInstallService被调用的位置,它甚至可能在InstallFiles之前,因此正在安装的文件的延迟CA当然会失败。
<Bundle>
<Variable Name="MYPROPERTY" bal:Overridable="yes"/>
<Chain>
<MsiPackage>
<MsiProperty Name="MYPROPERTY" Value="[MYPROPERTY]"/>
</MsiPackage>
</Chain>
</Bundle>