我从版本3.5升级了WiX到版本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"
现在,这导致我们的团队构建因错误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>
这里有什么需要改变的地方(例如产品版本)吗?
答案 0 :(得分:6)
我做了两件似乎已经解决了我的问题的事情,所以我不能确定具体的解决方案是什么,但这就是我所做的。
$(WIX)
而不是%WIX%
现在,构建正确运行事件并成功。我在IIS网站上遇到了不同的问题,但如果需要,我会提出一个新的问题。