如何在WiX中指定ComponentGroupRef的文件位置

时间:2015-12-15 15:56:16

标签: wix wix3.10

我是WiX的新手。我使用Heat工具根据文件夹生成wxs文件。现在,我如何在product.wxs中使用wxs文件,而不实际将生成的文件包含在解决方案中。仅供参考,我知道我可以使用“ComponentGroupRef Id”引用生成的文件,但是如何指定ComponentGroupRef的文件路径?

2 个答案:

答案 0 :(得分:0)

您不必指定该组件组所在文件的路径。你基本上应该做两件事:

  • 确保您的热量生成文件包含在编译过程中。您可以将其放在其他wxs文件旁边,然后让蜡烛选择该文件夹
  • 如您所述,在product.wxs元素
  • 的帮助下,引用ComponentGroupRef中的组件组

答案 1 :(得分:0)

检查构建目标之前的收获元素。

<Target Name="BeforeBuild">
  <HarvestDirectory Include="$(SourceDir)">
    <DirectoryRefId>INSTALLDIR</DirectoryRefId>
    <ComponentGroupName>cmpMain</ComponentGroupName>
    <PreprocessorVariable>var.SourceDir</PreprocessorVariable>
    <SuppressUniqueIds>false</SuppressUniqueIds>
    <SuppressCom>true</SuppressCom>
    <SuppressRegistry>true</SuppressRegistry>
    <SuppressRootDirectory>true</SuppressRootDirectory>
    <KeepEmptyDirectories>false</KeepEmptyDirectories>
  <Transforms>DefaultTransform.xsl</Transforms>
</HarvestDirectory>

制作组件组并引用生成的文件:

<ComponentGroup Id="ProductComponents" Directory="INSTALLDIR">
  <ComponentGroupRef Id="cmpMain" />
</ComponentGroup>

*您可以跳过这个并直接转到功能表中的引用,但我更喜欢在不同的Components.wxs文件中定义所有组件。

然后在功能表中包含组件组:

<Feature Id="Main" Title="Main" Level="1" ConfigurableDirectory="INSTALLDIR" >
  <ComponentGroupRef Id="ProductComponents" />
</Feature>