如何使用Wix Burn将ExePackage的可执行文件复制到目标机器的指定目录?

时间:2014-10-23 14:13:14

标签: variables wix built-in burn payload

在我的wix bootstrapper项目中,我有两个exe包(32位和64位)和msi包。我想安装一个exe包,然后安装msi。但我还需要将两个exe包的可执行文件复制到以msi设计的目标目录。问题是,如果我像msi中的其他文件一样安装它们:

    <Component Id="cmp9A1327054E32" Directory="dir088" Guid="GUID">
        <File Id="filA60" KeyPath="yes" Source="$(var.PathToFile)\AccessDatabaseEngine.exe" />
    </Component>

这将使我的包的大小加倍(exe包的2个可执行文件和msi的2个可执行文件)。  所以我的问题是&#34;我如何使用相同的.exe文件来安装exe包并将它们复制到目标机器?&#34;


我已经尝试将此文件用作msi的有效内容,然后在msi中使用自定义操作从缓存文件夹中复制它们

 <MsiPackage Id="MainPackage" SourceFile="$(var.RESOURCES)\Foo.msi" DisplayInternalUI="yes" Compressed="yes" Vital="yes" DisplayName="Foo">
        <Payload SourceFile="$(var.THIRDPAPTYRESOURCES)\AccessDatabaseEngine_x64.exe" Name="AccessDatabaseEngine_x64.exe" Id="MSADE64"/>
        <Payload SourceFile="$(var.THIRDPAPTYRESOURCES)\AccessDatabaseEngine.exe" Id="MSADE"/>
        <MsiProperty Name="CACHE" Value="[WixBundleExecutePackageCacheFolder]"/>
      </MsiPackage>

但是我无法获得WixBundleExecutePackageCacheFolder内置变量的值来将它传递给msi.Any建议吗?

1 个答案:

答案 0 :(得分:2)

在WiX 3.9中添加了

WixBundleExecutePackageCacheFolder