2013-03-03 138 views
2

我从版本3.5升级到版本3.7,现在在安装程序的预生成步骤中遇到错误。WiX升级后出现热量错误

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

现在,这导致我们的团队建设与错误而失败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

我想不出什么会已经改变导致此错误,除非有些东西已经发生了变化,我还没有发现。

编辑:

罗布后述详细下面建立的评论,我一看,发现在“环境构建之前”,发现维克斯属性设置为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> 

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

+1

希望能够通过MSBuild输出和/或详细日志中的热量本身提供更多信息。你可以添加这个问题吗? – 2013-03-03 15:28:57

+0

Thanks @RobMensching - 我添加了一些更多信息。如果需要,我可以从日志中添加更多详细信息。 – Joeb454 2013-03-03 16:44:40

回答

6

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

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

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

+0

你在哪里做第二次改变? – hakan 2013-07-08 07:42:42

+0

我刚刚有同样的问题,并重新启动修复它。我认为这是因为我的构建代理在安装Wix时正在运行,所以在重新启动之前他们没有获得新的环境。 (大概简单地重新启动代理也可以工作。) – 2014-07-04 16:40:37

+0

@NateHekman我认为可能是这样,是的。几个月前我在本地开发机器上发现了一个类似的问题,使用WiX 3.8并重新启动,以及 – Joeb454 2014-07-04 22:05:01