我的项目过去使用 WiX 3.0 构建良好,现在失败了
heat.exe : error HEAT5301: Invalid project output group: Binaries3bSources3bSatellites%3bDocuments.
我在 wix.targets 文件中找到了这个 ProjectOutputGroup,但它看起来像这样:
<CreateItem
Include="@(_MSBuildProjectReferenceExistent)"
Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' "
AdditionalMetadata="ProjectOutputGroups=Binaries%3BSymbols%3BSources%3BContent%3BSatellites%3BDocuments;GenerateType=payloadgroup;HeatOutput=$(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs">
<!-- ... -->
</CreateItem>
看起来前两个值的 %
被丢弃了,但最后一个值仍然存在。
最佳答案
我们在一个从 WiX 3.0 升级到 WiX 3.5.x 的 WiX 项目(在 Visual Studio 2008 解决方案下)中遇到了同样的错误。此外,该问题仅发生在 TFS 2010 构建服务器上。使用 Visual Studio 的桌面构建很好。
我们的 WiX 安装项目与一堆 C# 类库在同一个解决方案中 - 它基本上是一个库安装程序。 WiX 项目有每个 C# 库的项目引用,我们使用“$(var.MyLibrary1.TargetDir)\MyLibrary.dll”语法来引用我们 WiX 脚本中的文件。
DoNotHarvest 没有为我们解决问题。
我们通过从 WiX 安装项目中删除然后重新添加所有 C# 库引用来解决这个问题。
关于msbuild - 如何修复 WiX 3.5.1811.0 的 HEAT5301 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3182998/