我对Visual Studio 2008中的.NET平台构建选项有一些困惑.
什么是"任何CPU"编译目标,它生成什么类型的文件?我检查了这个"Any CPU"构建的输出可执行文件,发现它们是x86可执行文件(谁也看不到它!).那么,将可执行文件定位到x86与"任何CPU"之间有什么区别吗?
我注意到的另一件事是托管C++项目没有这个平台作为选项.这是为什么?这是否意味着我怀疑"任何CPU"可执行文件是普通的32位可执行文件是对的?
我正在尝试使用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),我很乐意听到它.
我必须在64位计算机上部署C#应用程序,尽管它也可能部署在32位计算机上.我应该构建两个针对x86和x64平台的独立可执行文件,还是应该针对"AnyCPU"平台(在项目属性的"构建"选项中指定)构建单个可执行文件.在C#程序集构建的目标"AnyCPU"之间是否存在任何性能差异?部署在64位计算机上与相同的程序集部署专门针对'x64'平台?