C# MSBuild。使用x86、x64和任何CPU平台构建解决方案 我在我的解决方案中有多个项目——C++和x86和x64平台,以及C与任何CPU第三方DLL、X86和X64平台。这些项目相互依赖。 我有两种解决方案配置—x86和x64。当我在VS中选择x86,然后所有的C++项目都被构建为x86时,所有第三方C项目都被构建为任何CPU,而我的C项目则被构建为x86。x64为我的项目生成x64,为第三方C项目生成任何CPU。 这在VisualStudio中起作用。 但是,当我尝试通过MSBuild AppVeyor CI生成此文件时,我遇到以下错误:

C# MSBuild。使用x86、x64和任何CPU平台构建解决方案 我在我的解决方案中有多个项目——C++和x86和x64平台,以及C与任何CPU第三方DLL、X86和X64平台。这些项目相互依赖。 我有两种解决方案配置—x86和x64。当我在VS中选择x86,然后所有的C++项目都被构建为x86时,所有第三方C项目都被构建为任何CPU,而我的C项目则被构建为x86。x64为我的项目生成x64,为第三方C项目生成任何CPU。 这在VisualStudio中起作用。 但是,当我尝试通过MSBuild AppVeyor CI生成此文件时,我遇到以下错误:,c#,c++,visual-studio,msbuild,C#,C++,Visual Studio,Msbuild,C:\Program Files x86\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets 723,5:错误:未为项目“Atf.Core.vs201”设置OutputPath属性 0.csproj'。请检查以确保指定了有效的组合 关于本项目的配置和平台。配置调试平台 form='x86'。您可能看到此消息,因为您正在尝试构建一个p 没有解决方案文件的项目,并且已指定非默认配置 或此项目不存在的平台。[D:\Engine\Code\D

C:\Program Files x86\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets 723,5:错误:未为项目“Atf.Core.vs201”设置OutputPath属性 0.csproj'。请检查以确保指定了有效的组合 关于本项目的配置和平台。配置调试平台 form='x86'。您可能看到此消息,因为您正在尝试构建一个p 没有解决方案文件的项目,并且已指定非默认配置 或此项目不存在的平台。[D:\Engine\Code\Dependenc ies\ATF\Framework\ATF.Core\ATF.Core.vs2010.csproj]

看起来MSBuild没有考虑解决方案的平台。它尝试使用指定的平台在解决方案中构建每个项目。 我试图解决将/p:OutputPath=bin\Debug添加到MSBuild脚本的问题,虽然x86已成功编译,但x64给了我许多新错误:

所以我的问题是。是否可以强制MSBuild从解决方案映射获取平台,而不是按项目原样使用它们


另外,我正在使用Premake生成我的项目,因此在解决方案中添加一些属性可能会很棘手。另外,我希望避免修复第三方项目。

我找到的解决此问题的唯一方法是在解决方案中遵循以下规则:

为所有项目创建唯一的平台名称,如Intel、UniquePlatform或RogerRabbit。 为每个项目选择正确的参数集。 删除所有项目的所有其他平台。 如果我不打算修复第三方来源,请不要将其包括在我的解决方案中。如果需要,我会在本地提要上编写一个nuget包。
然后,我可以使用msbuild进行构建,因为没有sense平台/配置组合,所以未使用的较少。

您是否尝试指定平台和配置msbuild SolutionName.sln/property:Configuration=Release/property:Platform=x64?是的,这就是我尝试在本地构建项目的方式。它给了我在第一篇文章中提到的错误