[英]MSBuild. Building solution with x86, x64 and Any CPU platforms
我的解决方案中有多个项目-具有x86和x64平台的C ++和具有任何CPU(第三方dll),x86和x64平台的C#。 这个项目相互依赖。 我有两个解决方案配置-x86和x64。 当我在VS中选择x86时,所有C ++项目都将构建为x86,所有第三方C#项目都将构建为Any CPU,而我的C#项目将构建为x86。 x64为我的项目生成x64,为第三方C#项目生成任何CPU。 这在Visual Studio中有效。 但是,当我尝试通过MSBuild(AppVeyor CI)构建此文件时,出现此错误:
C:\\ Program Files(x86)\\ MSBuild \\ 14.0 \\ bin \\ Microsoft.Common.CurrentVersion.targets(723,5):错误:未为项目'Atf.Core.vs201 0.csproj'设置OutputPath属性。 请检查以确保您为此项目指定了有效的Configuration and Platform组合。 配置=“调试”平台形式=“ x86”。 您可能会看到此消息,因为您尝试在没有解决方案文件的情况下构建应用程序,并且指定了该项目不存在的非默认配置或平台。 [D:\\ Engine \\ Code \\ Dependency \\ ATF \\ Framework \\ Atf.Core \\ Atf.Core.vs2010.csproj]
看起来MSBuild没有考虑解决方案的平台。 它尝试使用指定的平台构建解决方案中的每个项目。 我试图解决在MSBuild脚本中添加/ p:OutputPath = bin \\ Debug的问题,而x86已成功编译,而x64给了我很多新的错误:(
所以我的问题。 是否可以强制MSBuild从解决方案映射中获取平台,而不是尝试按每个项目使用它们?
PS我正在使用Premake生成我的项目,因此向解决方案中添加一些属性可能很棘手。 另外,我想避免“修复”第三方项目。
我找到的唯一解决方案是在解决方案中遵循以下规则:
然后,我可以使用msbuild进行构建,并且有更少的未使用(由于没有意义而未使用)的平台/配置组合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.