Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix条件自定义操作_Wix_Windows Installer - Fatal编程技术网

Wix条件自定义操作

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> ...

我有一个Wix项目,它有几个msi和一个引导程序来运行这些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>
但是自定义操作不会运行

为了进行测试,我更改了自定义操作,如下所示:

    <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>