Wix有条件的自定义动作

时间:2015-01-26 09:44:00

标签: wix windows-installer

我有一个Wix项目,它有几个msi和一个bootstrapper来运行这些msi。

在其中一个msi中,我想基于参数属性运行自定义操作。

在我的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>

从命令行我运行:

mybootstrapper MYPROPERTY=1

但自定义操作无法运行。

为了进行测试,我已经更改了我的自定义操作:

    <Custom Action="MyAction" After="CustomActionInstallService">
        MYPROPERTY=1
    </Custom>

具有相同的结果,自定义操作无法运行。

有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

在你的bootstrapper(刻录)脚本中你是否将属性传递给MSI?这样的事情应该在你的刻录项目中完成,以传递属性:

<Bundle>
    <Variable Name="MYPROPERTY" bal:Overridable="yes"/>
    <Chain>
      <MsiPackage>
        <MsiProperty Name="MYPROPERTY" Value="[MYPROPERTY]"/>
      </MsiPackage>
    </Chain>
</Bundle>