msbuild - 如何修复 WiX 3.5.1811.0 的 HEAT5301 错误

标签 msbuild wix wix3.5 heat

我的项目过去使用 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/

相关文章:

msbuild - 在单个构建定义中使用多个源代码管理文件夹 TFS 2010

c# - 构建失败,因为找不到 AL.exe

visual-studio - Visual Studio (2012, 2015) 重建项目,尽管没有任何改变

c# - 错误 : a certificate chain processed, 但在根错误 .Net Framework 4.7 中终止

wix - 如何从 Wix 安装程序将自签名 SSL 证书安装到商店中?

wix - 每台机器和每用户安装的磁盘成本不会改变

.net - MSBuild 编译错误 "resgen.exe".Net FX 3.5 工具

installation - wix 产品 ID 应该为补丁号更改自动生成吗?

c# - 验证服务是否标记为删除

mysql - 带有数据库 MYSQL 的 WiX