【发布时间】:2011-03-10 11:43:37
【问题描述】:
我正在尝试使用 MSBuild 构建具有指定目标平台的解决方案(我需要二进制文件,x86 和 x64)。我就是这样尝试的:
C:\WINDOWS\Microsoft.NET\Framework\v3.5>MsBuild SolutionPath\Solution.sln /t:Rebuild /p:Configuration=Release /p:Platform="x86"
但是,如果平台与“任何 CPU”不同,则构建总是会失败。我做错了什么?
这是 MSBuild 打印的 while 输出:
C:\WINDOWS\Microsoft.NET\Framework\v3.5>MsBuild SolutionPath\Solution.sln /t:重建 /p:配置=发布 /p:Platform="x86" Microsoft (R) 构建 引擎版本 3.5.30729.1 [微软 .NET 框架,版本 2.0.50727.3082] 版权所有 (C) Microsoft Corporation 2007。所有权利 保留。
构建开始于 1.7.2010 8:28:10。 项目“SolutionPath\Solution.sln” 节点 0(重建目标 t(s))。 解决方案路径\解决方案.sln:错误 MSB4126:指定的解决方案 配置“Release|x86”是 无效的。请指定一个有效的 解决方案配置使用 配置和平台属性 (例如 MSBuild.exe Solution.sln /p:配置=调试 /p:Platform="Any CPU") 或离开那些 属性空白以使用默认值 解决方案配置。完成建筑 项目“SolutionPath\Solution.sln” (重建目标)--失败。
构建失败。
“SolutionPath\Solution.sln”(重建 目标)(1)-> (ValidateSolutionConfiguration 目标) -> SolutionPath\Solution.sln : 错误 MSB4126: 指定的解决方案 配置“Release|x86”是 无效的。请指定一个有效的 解决方案配置使用 配置和平台属性 (例如 MSBuild.exe e Solution.sln /p:配置=调试 /p:Platform="Any CPU") 或离开那些 属性空白以使用默认值 解决方案配置。
0 Warning(s) 1 Error(s)经过时间 00:00:00.03
如果我尝试使用 devenv 为 x86/x64 构建它,它可以完美运行,但是我试图在不安装所有必要版本的 Visual Studio 的情况下设置构建服务器。顺便说一句,如果有更好的免费工具(支持 .NET 框架 4),我很想听听。
【问题讨论】:
-
它是如何失败的?可能有些项目不支持x86平台?
-
你确定不需要 /p:Platform="Win32" 吗?
-
对于来到这里并想知道如何在不安装 Visual Studio 的机器上安装 2017 版 MSBuild 的未来读者,请参阅this other question。
-
@AndrewWyatt - afaik - C++ 使用
Win32而现代 .NET 使用x86 -
@ElliotWoods - 感谢您的澄清:Win32/x86 - 我的观点仅来自 C++ 的观点。
标签: msbuild