我有一个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,我应该做哪些更改?
发布于 2016-07-08 22:30:57
你有一个指向C:\Program File (x86)\Wix ToolsetV3.10\“的"WIX”环境变量吗?我认为这就是检测热位置的方法,但由于你不再安装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的计算机上不需要这样做。您也可以尝试卸载Wix4.0,然后重新安装,这可能会神奇地修复所有问题。仅仅修复可能是行不通的。
发布于 2016-07-14 15:11:54
最后,我卸载了Wix4,重启了计算机并安装了Wix4,现在我可以成功地编译项目了。
https://stackoverflow.com/questions/38266413
复制相似问题