WiX .wixproj文件中的PreBuildEvent与HeatDirectory

时间:2015-12-02 14:55:59

标签: visual-studio msbuild wix

PreBuildEventHeatDirectory之间的关系是什么? .wixproj档案?

要致电heat.exe我已经配置了预制活动:

  <PropertyGroup>
    <PreBuildEvent>"$(WIX)bin\heat.exe" dir "$(SolutionDir)\Source" ^
                       -var var.SourceDir ^
                       -dr INSTALLFOLDER ^
                       -cg MyComponents ^
                       -ag -ke -scom -sfrag -srd -sreg -suid -svb6 ^
                       -o "$(ProjectDir)MyComponents.wxs"</PreBuildEvent>
  </PropertyGroup>

但是还有HeatDirectory元素:

<!-- To modify your build process, add your task inside one of the
     targets below and uncomment it. Other similar extension points
     exist, see Wix.targets.
<Target Name="BeforeBuild">
  <HeatDirectory ... >
  </HeatDirectory>
</Target>
<Target Name="AfterBuild">
</Target>
-->

我应该使用什么关系?

1 个答案:

答案 0 :(得分:1)

两者都是一样的。

Prebuild事件直接调用加热过程,以便自动生成MyComponents.wxs文件。

使用“HeatDirectory”或“HarvestDirectory”时,之前的构建目标也是如此。

主要区别在于哪个选项更适合您。 命令行,如上所述,或 xml风格,如:

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