gpt4 book ai didi

xml - 合并两个由 Heat 生成的 .wxs 文件

转载 作者:行者123 更新时间:2023-12-04 16:49:54 26 4
gpt4 key购买 nike

我的 WiX 安装程序项目有两个我需要注册的 .dll,所以我在我的预构建中有两个 heat.exe 调用,每个调用都输出一个 .wxs 文件,该文件创建一个组件和一个目录引用。问题在于必须为每个安装目录指定一个事实。如果我为两者指定 INSTALLFOLDER,稍后会抛出一个错误,因为我有重复的 ID(可以理解,两个目录都在各自的 wxs 文件中获得一个 directoryref 元素)

我的设置:

DllReg1.wxs:

<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Directory Id="dir581D83B1FCCC198EE5DE7DEB6BA83639" Name="MyProgram" />
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="MyComReg1">
<!--MyComponentGroupDetails-->
</ComponentGroup>
</Fragment>

DllReg2.wxs:

<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Directory Id="dir581D83B1FCCC198EE5DE7DEB6BA83639" Name="MyProgram" />
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="MyComReg2">
<!--MyComponentGroupDetails-->
</ComponentGroup>
</Fragment>

我需要的是一个包含以下两者的 .wxs 文件:

<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Directory Id="dir581D83B1FCCC198EE5DE7DEB6BA83639" Name="MyProgram" />
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="MyComReg1">
<!--MyComponentGroupDetails-->
</ComponentGroup>
<ComponentGroup Id="MyComReg2">
<!--MyComponentGroupDetails-->
</ComponentGroup>
</Fragment>

是否有一种合适的转换方式来从两者中选择组件并从一个中选择 directoryref 并将所有内容复制到一个新的 .wxs 文件?

我意识到 heat 将允许将多个源文件收集到一个 .wxs 中,但这个选项不会像事后转换那样顺利。目前我正在手工编辑最终的 .wxs 文件,但这显然不理想。

提前致谢。

最佳答案

无需合并输出。将 -srd 开关与 -dr 开关一起使用。然后您可能需要定义 dr 引用的目录,例如 MyProgram:

<DirectoryRef Id="INSTALLFOLDER">
<Directory Id="MyProgram" Name="MyProgram" />
</DirectoryRef>

关于xml - 合并两个由 Heat 生成的 .wxs 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22481948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com