【发布时间】:2009-10-21 06:39:02
【问题描述】:
我正在使用 heat.exe 生成文件列表,我需要替换 File/@Source="SourceDir" 所以我传递 -var 和目录名称,但这些变量是在我的 .wxi 文件中定义的 如何在热生成的 wxs 文件中包含 .wxi 文件。因为每次构建时都会生成此文件。
【问题讨论】:
-
我想我找到了解决此问题的另一个选项。使用 -var 并在蜡烛命令行上使用相同的。
标签: wix
我正在使用 heat.exe 生成文件列表,我需要替换 File/@Source="SourceDir" 所以我传递 -var 和目录名称,但这些变量是在我的 .wxi 文件中定义的 如何在热生成的 wxs 文件中包含 .wxi 文件。因为每次构建时都会生成此文件。
【问题讨论】:
标签: wix
为什么要替换 SourceDir?
您可以使用-b 开关传递其他基本文件夹以点亮,对于 SourceDir 的所有引用,WiX 将在您指定的基本文件夹中查找。使在机器之间移动东西变得容易,只需更新构建系统中的参数,而不是编辑包含文件。
【讨论】:
wix 3.7 的更新,当您在 wixproj 中使用 HeatDirectory 任务而不是运行 heat.exe 时,您可以使用 PreprocessorVariable 来设置 SourceDir。
<Target Name="BeforeBuild">
<HeatDirectory Directory="..\distribution"
PreprocessorVariable="myVar" <--- your variable name
OutputFile="HeatGeneratedFileList.wxs"
ComponentGroupName="HeatGenerated"
DirectoryRefId="INSTALLFOLDER"
AutogenerateGuids="true"
ToolPath="$(WixToolPath)"
SuppressFragments="true"
SuppressRegistry="true"/>
</Target>
更多细节:
http://wix.sourceforge.net/manual-wix3/msbuild_task_reference_heatdirectory.htm
【讨论】: