WiX x64 平台目标

37

当我创建一个 WiX 项目并尝试将平台设置为“x64”时,我的构建输出会显示如下错误:

------ Build started: Project: MyProject, Configuration: Release x64 ------
C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets(444,7): error : The OutputPath property is not set for this project.  Please check to make sure that you have specified a valid Configuration/Platform combination.  Configuration='Release'  Platform='x64'
Done building project "MyProject.wixproj" -- FAILED.
------ Build started: Project: MyProject, Configuration: Debug x64 ------
C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets(444,7): error : The OutputPath property is not set for this project.  Please check to make sure that you have specified a valid Configuration/Platform combination.  Configuration='Debug'  Platform='x64'
Done building project "MyProject.wixproj" -- FAILED.

报错提示该项目未设置输出路径,但实际上已经设置了。对于调试配置,输出路径设置为bin\x64\Debug\,而对于发布配置,则设置为bin\x64\Release\。那这个错误是什么原因造成的呢?

此外,该错误并没有显示在错误窗口中。我知道归咎于编译器是一个新手错误,但我开始怀疑......这是构建工具的问题还是我忽略了某些愚蠢的东西?


1
有趣的事实是,我们已经从v3.11.1.2318更新到v3.11.2.4516,自那以后我们无法再构建安装文件(配置:Release|x86)。我们已经降级到之前的版本,一切似乎又恢复正常了。我认为最新版本的WIX存在问题。 - mrc
5个回答

61
如果您在文本编辑器中打开.wixproj文件,您会发现x64配置项在文件底部(标准WiX构建目标导入之下),而x86配置在顶部(导入之上)。如果将x64配置的XML移动到与x86配置相邻的位置,则会发现您的项目可以在两个平台上正常构建。

2
是的,那就是问题所在。我移动了两个PropertyGroup段落,现在x64版本可以构建了。+1并接受答案。所以我想这是一个Votive的问题,我会相应地更新我的错误报告。 - Tim Long
@TimLong,如果我找到了正确的错误,现在它已经在GitHub上(https://github.com/wixtoolset/issues/issues/3671),如果你想在那里跟踪它。 - Tsahi Asher
@TsahiAsher 谢谢你提供的链接。我想知道我在2011年6月报告的那个错误怎么样了?我在每个WiX项目中都遇到了这个问题,最终不得不直接编辑项目文件。 - Tim Long
@TimLong 源Forge上的原始错误是由匿名者提交的,因此我不知道是否为您所提交。 - Tsahi Asher
1
嗨,感谢这个提示...它节省了很多时间。我也确认2020年2月13日问题仍然存在,并且WixToolset的3.11.2.4516版本也有此问题。 - sstassin
显示剩余2条评论

12

我遇到了同样的问题。但在我的情况下,wixproj文件并没有出现格式错误,而是

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">

这个东西完全不存在。只需复制x86配置文件,保存即可解决问题。


1
这在3.9 R2中似乎仍然是一个问题。通过标准的Visual Studio配置管理器添加x64项目平台似乎并没有实际将属性组添加到项目文件中。 - Alex Jorgenson
截至2017年3月,它仍在执行该操作。 - Tim Long
我也遇到了这个问题,而且现在已经是2021年了! - sonicbhoc

0

谢谢Rob,我正在使用3.5版本,但我会升级到3.6版本并查看是否可以重现。如果可以,我会提交一个bug报告。 - Tim Long
1
提交错误 - 仍然在3.6版本中发生 - Tim Long
1
这个 Bug 还存在吗?在 WiX 3.11 的新项目中遇到了这个问题。 - Jason
杰森,请确保你的.wixproj文件使用最新的模板更新。 - Rob Mensching
@Pierre,如果你谈论的是当前的FireGiant专业服务提供,不要忘记包括代码审查和两小时电话咨询。我们的大多数FireGiant客户选择企业支持计划与我们建立长期关系,并帮助支持WiX工具集的持续发展。如果您需要免费支持,邮件列表始终可用,您也可以在StackOverflow上提出其他问题。 - Rob Mensching
显示剩余2条评论

0
作为一点说明:我们遇到了同样的问题...对于我们来说,Wix项目文件完全正常。由于某种原因,Git仍然在队列中有未处理的传出更改(在我们尝试构建的本地机器上)。一旦这些更改被推送,构建就可以顺利进行。

0

警告:WiX 可以在不同的 <PropertyGroup> 中插入多个实例:

    <DefineConstants>Foo=Bar</DefineConstants>
    <DefineConstants>Foo=</DefineConstants>

这样就可以覆盖您想要的设置。您需要仔细手动编辑.WIXPROJ文件并查找重复项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接