如何更改WIX Heat.exe工具集版本?

时间:2016-07-08 12:16:20

标签: visual-studio-2013 wix heat

我安装了早期使用WIX 3.9的Visual Studio WIX安装项目,在安装新的WIX 4.0后,它无法与WIX一起使用。

ServerSetup.wixproj(67,5): error MSB6004: The specified task executable location "C:\Program Files (x86)\WiX Toolset v3.10\Bin\Heat.exe" is invalid.

ServerSetup.wixproj项目文件中的第67行是:

<HeatProject Project="%(ProjectReference.FullPath)" ProjectName="%(ProjectReference.Name)" OutputFile="$(IntermediateOutputPath)Harvested XML\_%(ProjectReference.Name).xml" ProjectOutputGroups="%(ProjectReference.RefProjectOutputGroups)" ToolPath="$(Wix)Bin\" SuppressAllWarnings="true" AutogenerateGuids="false" GenerateGuidsNow="true" SuppressFragments="true" SuppressUniqueIds="false" Condition="'%(ProjectReference.FullPath)'!='' And '%(ProjectReference.DoNotHarvest)'!='True' And '%(ProjectReference.ImportedFromVDProj)'!='True'" />

我已经取消了WIX 3.x,我只有Wix 4.0。我应该更改什么来强制Visual Studio 2013使用WIX 4.0?

2 个答案:

答案 0 :(得分:0)

你有一个&#34; WIX&#34;环境变量指向C:\ Program File(x86)\ Wix Toolset v3.10 \&#34; ?我认为这就是如何检测热量位置,但由于你不再安装3.10,文件不存在。

更新此环境变量可能会解决您的问题。或者,您应该能够通过设置一些属性来强制您的项目选择正确的热量目录:

<WixRootPath Condition=" '$(WixRootPath)' == '' ">$(MSBuildThisFileDirectory)Tools\wix\$(WixTargetVersion)\</WixRootPath>
<WixToolPath Condition=" '$(WixToolPath)' == '' ">$(WixRootPath)</WixToolPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(WixRootPath)Wix.targets</WixTargetsPath>
<WixCATargetsPath Condition=" '$(WixCATargetsPath)' == '' ">$(WixRootPath)sdk\Wix.CA.targets</WixCATargetsPath>
<WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(WixToolPath)WixTasks.dll</WixTasksPath>
<WixSdkPath Condition=" '$(WixSdkPath)' == '' ">$(WixRootPath)sdk\</WixSdkPath>

但理想情况下,在已经安装了wix的计算机上不需要这样做。您也可以尝试卸载wix 4.0并重新安装它,这可能会神奇地修复所有内容。修理可能不起作用。

答案 1 :(得分:0)

最后我卸载了WIX 4,重新启动了计算机并安装了WIX 4,现在我可以成功编译项目了。