2

我将 WiX 从 3.5 版升级到 3.7 版,现在在安装程序的预构建步骤中遇到错误。

有问题的预构建步骤是"%wix%\bin\heat.exe" dir "$(OutDir)_PublishedWebsites\Application Files" -dr INSTALL_LOCATION -cg SourceComponentGroup -ag -var var.SourcePath -out "$(ProjectDir)HeatFile.Generated.wxs"

现在这会导致我们的 Team Build 失败并出现错误C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets (816): The command ""%wix%\bin\heat.exe" dir "C:\Builds\12\TFS\Wix 3.7 Test Build\Binaries\_PublishedWebsites\Application Files" -dr INSTALL_LOCATION -cg SourceComponentGroup -ag -var var.SourcePath -out "C:\TFS\WiX3.7\Install\HeatFile.Generated.wxs"" exited with code 3

我无法弄清楚导致此错误的原因会发生什么变化,除非我无法找到的热量发生了变化。

编辑:

在 Rob 在下面的评论中提到详细构建后,我查看并发现在“构建前的环境”中发现 WIX 属性设置为WIX = C:\Program Files (x86)\Windows Installer XML v3.5\,但是当我通过控制面板查看系统环境变量中的相同属性时,我看到 WIX 设置为C:\Program Files (x86)\WiX Toolset v3.7\.

MSBuild 配置中的某个地方是否会设置此项?

编辑2:

我还在我们的 .wixproj 文件中发现了这一点:

<ProductVersion>3.5</ProductVersion>
<ProjectGuid>{GUID}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Install</OutputName>
<OutputType>Package</OutputType>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>

这里有什么需要改变的吗(例如产品版本)?

4

1 回答 1

6

我做了两件事似乎已经解决了我的问题,所以我不能确定确切的解决方案是什么,但这就是我所做的。

  1. 我重新启动了构建服务器。尽管它显示了正确的环境变量,并从命令行返回了正确的值,但我还是重启了以防万一。
  2. 我将预构建事件更改为使用$(WIX)而不是%WIX%

构建现在正确运行事件并成功。我对 IIS 网站有不同的问题,但如果需要,我会提出一个新问题。

于 2013-03-04T13:52:36.783 回答