Wix、Heat 和 Wxi 文件
Posted
技术标签:
【中文标题】Wix、Heat 和 Wxi 文件【英文标题】:Wix,Heat and Wxi File 【发布时间】:2009-10-21 06:39:02 【问题描述】:我正在使用 heat.exe 生成文件列表,我需要替换 File/@Source="SourceDir" 所以我传递 -var 和目录名称,但这些变量是在我的 .wxi 文件中定义的 如何在热生成的 wxs 文件中包含 .wxi 文件。因为每次构建时都会生成此文件。
【问题讨论】:
我想我找到了解决此问题的另一个选项。使用 -var 并在蜡烛命令行上使用相同的。 【参考方案1】:为什么要替换 SourceDir?
您可以使用-b
开关传递其他基本文件夹以点亮,对于 SourceDir 的所有引用,WiX 将在您指定的基本文件夹中查找。使在机器之间移动东西变得容易,只需更新构建系统中的参数,而不是编辑包含文件。
【讨论】:
当您有多个文件夹,具有相同的文件名时,SourceDir 是一场噩梦。【参考方案2】: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
WIX HeatDirectory Task - Setting the preprocessorVariable
【讨论】:
以上是关于Wix、Heat 和 Wxi 文件的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio WiX 项目中使用 WXI 文件