我正在为我的Visual Studio解决方案收集目录。
到目前为止,它可以在我的本地系统上运行,可能是因为遵守了项目构建顺序。
当我在构建服务器上运行安装程序时,它会找到正确的目录,但在构建安装文件时尚未创建该目录。抛出HEAT5052
错误,指示The directory 'a:\b\c' could not be found
。
建立所有项目引用之后,是否有任何方法可以“等待”直到执行热命令?
最佳答案
好的,所以我花了数小时来弄清楚所有引用被重新设置后如何触发Heat
。我仅使用<PreBuildEvent>
命令行以及<PostBuildEvent>
和Heat
目标找到了BeforeBuild
和AfterBuild
的解决方案。
因此,我在自己的wix2010.targets
文件中找到了所有类型的目标Program files (x86)\MSBuild\Microsoft\Wix\
文件夹。它包含一个名为AfterResolveReferences
的目标,并且确实做到了这一点。所以这是我的代码,我最终得到了(以防有人感兴趣):
<Target Name="AfterResolveReferences">
<HeatDirectory
ToolPath="$(WixToolPath)"
OutputFile="Product.Binaries.wxs"
SuppressFragments="$(HarvestDirectorySuppressFragments)"
Transforms="Filter.xslt"
Directory="$(HarvestFolder)"
DirectoryRefId="MY_FOLDER"
ComponentGroupName="Binaries"
GenerateGuidsNow="true"
SuppressRootDirectory="true"
SuppressRegistry="true"
PreprocessorVariable="var.App.TargetDir">
</HeatDirectory>
</Target>
关于msbuild - WiX Heat : Pre-build event fires too early on build server,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34282907/