Visual Studio 2013 - 如何更改WIX Heat.exe工具集版本



我有Visual Studio WIX安装项目,该项目在WIX 3.9中较早,在我安装新的WIX 4.0之后,它不适用于WIX。

ServerSetup.wixproj(67,5): error MSB6004: The specified task executable location "C:Program Files (x86)WiX Toolset v3.10BinHeat.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?

您是否有指向 C:\Program File (x86)\Wix Toolset v3.10\" 的"WIX"环境变量?我认为这就是检测热量位置的方式,但由于您不再安装 3.10,因此该文件不存在。

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

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

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

最后,

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

最新更新