我正在尝试使用MSBuild构建具有指定目标平台的解决方案(我需要二进制文件,x86和x64).这是我尝试的方式:
C:\WINDOWS\Microsoft.NET\Framework\v3.5>MsBuild SolutionPath\Solution.sln /t:Rebuild /p:Configuration=Release /p:Platform="x86"
Run Code Online (Sandbox Code Playgroud)
但是,如果平台与"任何CPU"不同,则构建始终会失败.我究竟做错了什么?
这是while输出MSBuild打印:
C:\ WINDOWS\Microsoft.NET\Framework\v3.5> MsBuild SolutionPath\Solution.sln/t:Rebuild/p:Configuration = Release/p:Platform ="x86"Microsoft(R)Build Engine Version 3.5.30729.1 [ Microsoft .NET Framework,版本2.0.50727.3082]版权所有(C)Microsoft Corporation 2007.保留所有权利.
建立于2010年7月1日8:28:10开始.在节点0上项目"SolutionPath\Solution.sln"(重建目标t(s)).SolutionPath\Solution.sln:错误MSB4126:指定的解决方案配置"Release | x86"无效.请使用"配置和平台"属性指定有效的解决方案配置(例如,MSBuild.exe Solution.sln/p:Configuration = Debug/p:Platform ="Any CPU")或将这些属性留空以使用默认解决方案配置.完成构建项目"SolutionPath\Solution.sln"(重建目标) - 失败.
建立失败.
"SolutionPath\Solution.sln"(重建目标)(1) - >(ValidateSolutionConfiguration target) - > SolutionPath\Solution.sln:错误MSB4126:指定的解析配置"Release | x86"无效.请使用Configuration和Platform属性指定有效的解决方案配置(例如MSBuild.ex e Solution.sln/p:Configuration = Debug/p:Platform ="Any CPU")或将这些专业保留为空以使用默认解决方案配置.
Run Code Online (Sandbox Code Playgroud)0 Warning(s) 1 Error(s)
时间流逝00:00:00.03
如果我尝试使用devenv为x86/x64构建它,它可以很好地工作,但是我正在尝试设置构建服务器而不安装所有必需的Visual Studio版本.顺便说一句,如果有一个更好的免费工具(支持.NET框架4),我很乐意听到它.
Tom*_*bes 176
在MSBuild或Teamcity中使用命令行
MSBuild yourproject.sln /property:Configuration=Release /property:Platform=x64
Run Code Online (Sandbox Code Playgroud)
或使用较短的形式:
MSBuild yourproject.sln /p:Configuration=Release /p:Platform=x64
Run Code Online (Sandbox Code Playgroud)
无论如何,您需要在项目中设置平台,请参阅Julien Hoarau的答案.
Jul*_*rau 101
如果要构建x86和x64的解决方案,则必须为两个平台配置解决方案.实际上你只有一个任何CPU配置.
要检查给定项目的可用配置,请打开项目文件(*.csproj
例如)并查找PropertyGroup
右侧的项目Condition
.
如果要构建Release
模式x86
,则必须在项目文件中包含以下内容:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
...
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
新的解决方案平台按钮http://blogs.msdn.com/blogfiles/habibh/WindowsLiveWriter/9d46e66e51d6_13278/image_15.png
新的解决方案平台面板http://blogs.msdn.com/blogfiles/habibh/WindowsLiveWriter/9d46e66e51d6_13278/image_18.png
如何创建和编辑配置(在MSDN上)
JJM*_*pls 14
如果您尝试从命令行执行此操作,则可能会遇到一个问题,即为您设置了计算机范围的环境变量"平台"并对您不利.如果我使用VS2012命令窗口而不是常规的Windows命令窗口,我可以重现这一点.
在命令提示符下键入:
设置平台
在VS2012命令窗口中,我有一个'X64'预设值.这似乎会干扰我的解决方案文件中的任何内容.
在常规命令窗口中,'set'命令会产生"未定义变量"消息......这很好.
如果上面的'set'命令的结果没有返回环境变量值,那么你应该很高兴.
小智 6
希望这对那里的人有帮助。
对于我指定的平台"Any CPU"
,将其更改为"AnyCPU"
并解决了问题。
msbuild C:\Users\Project\Project.publishproj /p:Platform="AnyCPU" /p:DeployOnBuild=true /p:PublishProfile=local /p:Configuration=Debug
Run Code Online (Sandbox Code Playgroud)
如果您查看 .csproj 文件,您将看到要使用的正确平台名称。
归档时间: |
|
查看次数: |
187291 次 |
最近记录: |