WiX - 访问收获文件夹中的 exe

问题描述 投票:0回答:1

在我的项目中,我必须收获 2 个文件夹,这些文件夹恰好包含我在自定义操作中使用的重复的 exe - 为了实现此目的,我将 wixproj 值“抑制根目录”设置为 false - 这意味着包含文件的文件夹也是打包到安装文件夹中。

但是,这现在意味着我的自定义操作/exe 未运行,我认为这是由于此目录更改所致(我已经测试过在抑制目录 = true 时它可以工作)

这是目录结构

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="APPLICATIONROOTDIRECTORY">
        <Directory Id="INSTALLFOLDER" Name="MyInstaller">
            <!--Files install here-->
        </Directory>
    </Directory>
</Directory>

到目前为止,我已尝试将已安装文件夹的名称 - HARVESTEDFOLDER - 传递到自定义操作中:

<CustomAction Id="RunIt" Directory="INSTALLFOLDER"
              ExeCommand="[INSTALLFOLDER][HARVESTEDFOLDER]run_it.cmd" Execute="deferred" Impersonate="no" Return="asyncNoWait" />

然而这似乎不起作用。这是完全错误的还是有更好的方法来访问 exe?

谢谢你:)

wix heat harvest
1个回答
0
投票

做你想做的事情有一种简单的方法和一种困难的方法:

  1. 简单的方法是使用高级收获工具及其

    HarvestFile
    元素能够直接引用文件。如果您更喜欢视频而不是文档,我在部署 DojoS1:53 中使用 WiX v4 介绍了这一点。它在 WiX v3 中的工作原理类似,但您需要安装 WiX Expansion Pack 而不是 HeatWave Build Tools。

  2. 困难的方法是使用 XSLT 和 heat.exe 过滤掉文件并直接指定它,或者在收获期间向文件添加 id。我使用 WiX v4 在 Deployment Dojo 的第 S1:52 集中介绍了第一个选项。其中大部分与 WiX v3 类似,但引用 heat.exe 的方式不同。

© www.soinside.com 2019 - 2024. All rights reserved.