我正在尝试使用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:Rebuild /p:Configuration=Release /p:Platform="x86“微软(R) Build Engine 3.5.30729.1版微软.NET框架,2.0.50727.3082版版权所有(C)微软公司2007。保留所有权利。
Build started 1.7.2010 8:28:10.节点0上的项目"SolutionPath\Solution.sln“(重建目标)。SolutionPath\Solution.sln :错误版本:指定的解决方案配置“MSB4126|x86”无效。请使用配置和平台属性(例如,MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform=“任何CPU")指定有效的解决方案配置,或将这些属性留空以使用默认解决方案配置。已完成生成项目"SolutionPath\Solution.sln“(重建目标) --失败。
生成失败。
" SolutionPath\Solution.sln“(重建目标) (1) -> (ValidateSolutionConfiguration目标) -> SolutionPath\Solution.sln:错误版本:指定的s解决方案配置”MSB4126|x86“无效。请使用配置和平台属性(例如,MSBuild.ex e Solution.sln /p:Configuration=Debug /p:Platform=“任何CPU")指定有效的解决方案配置,或将这些属性留空以使用默认解决方案配置。
0个警告1个错误
已用时间00:00:00.03
如果我尝试使用devenv为x86/x64构建它,它可以完美地工作,但是我尝试在不安装所有必要的Visual Studio版本的情况下设置构建服务器。顺便说一句,如果有更好的免费工具(支持.NET框架4),我很想听听。
发布于 2015-03-28 06:38:41
在MSBuild或Teamcity中使用命令行
MSBuild yourproject.sln /property:Configuration=Release /property:Platform=x64
或者使用更短的形式:
MSBuild yourproject.sln /p:Configuration=Release /p:Platform=x64
然而,无论如何你都需要在你的项目中设置平台,请参阅Julien Hoarau的答案。
发布于 2014-03-11 00:13:35
如果您试图从命令行执行此操作,您可能会遇到一个问题,即为您设置了一个计算机范围的环境变量'Platform‘,并且该变量对您不利。如果我使用VS2012命令窗口而不是常规的windows命令窗口,我可以重现这一点。
在命令提示符处键入:
set平台
在VS2012命令窗口中,我有一个'X64‘的预设值。这似乎干扰了我的解决方案文件中的内容。
在常规的命令窗口中,'set‘命令会导致"variable not defined“message...which是好的。
如果上面的'set‘命令的结果没有返回任何环境变量值,那么您应该可以继续执行了。
发布于 2021-02-11 02:49:23
希望这能帮助到外面的人。
对于平台,我指定了"Any CPU",将其更改为"AnyCPU“,这样就解决了这个问题。
msbuild C:\Users\Project\Project.publishproj /p:Platform="AnyCPU" /p:DeployOnBuild=true /p:PublishProfile=local /p:Configuration=Debug
如果您查看您的.csproj文件,您将看到要使用的正确平台名称。
https://stackoverflow.com/questions/3155492
复制相似问题