【问题标题】:Which MSBuild (x86 vs x64) to use when building for AnyCPU platform?为 AnyCPU 平台构建时使用哪个 MSBuild(x86 与 x64)?
【发布时间】:2015-05-03 05:39:32
【问题描述】:

我正在使用批处理文件来调用构建解决方案文件的 MSBuild。我的问题是,在为 AnyCPU 平台构建时,我应该使用哪个 MSBuild? 32位还是64位?

set sln=MySolution.sln
set src=%CD%\..\
set msbuildx86=%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
set msbuildx64=%windir%\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

set verbosity=/v:normal

%msbuildx86% "%src%%sln%" %verbosity% /t:Clean;Build /p:NoWarn=1591 /p:Configuration=Debug /p:Platform="Any CPU" <-- x86 or x64?
%msbuildx86% "%src%%sln%" %verbosity% /t:Clean;Build /p:NoWarn=1591 /p:Configuration=Debug /p:Platform="x86"
%msbuildx64% "%src%%sln%" %verbosity% /t:Clean;Build /p:NoWarn=1591 /p:Configuration=Debug /p:Platform="x64"

%msbuildx86% "%src%%sln%" %verbosity% /t:Clean;Build /p:NoWarn=1591 /p:Configuration=Release /p:Platform="Any CPU" <-- x86 or x64?
%msbuildx86% "%src%%sln%" %verbosity% /t:Clean;Build /p:NoWarn=1591 /p:Configuration=Release /p:Platform="x86"
%msbuildx64% "%src%%sln%" %verbosity% /t:Clean;Build /p:NoWarn=1591 /p:Configuration=Release /p:Platform="x64"

【问题讨论】:

  • 这无关紧要。就像平台名称一样无关紧要。对托管代码而言,唯一重要的是强制抖动,即您在 IDE 的 Project + Properties、Build 选项卡中设置的那个。您应该始终使用 IDE 使用的 msbuild.exe。这不是您要使用的那个。使用 Visual Studio 命令提示符,键入“where msbuild.exe”。
  • C:\Program Files (x86)\Microsoft Visual Studio 11.0&gt;where msbuild.exe C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe 我不需要 64 位 MSBuild 来构建 64 位平台吗?
  • 谢谢,在这里找到了我的答案:stackoverflow.com/questions/8617054/advantage-of-64-bit-msbuild

标签: visual-studio visual-studio-2012 msbuild msbuild-4.0


【解决方案1】:

为 x86 构建时,使用 x86 编译器更快且更稳定。大多数想要 64 位工具的用户通常希望为大型应用程序提供更大的工作内存。您可以将 PreferredToolArchitecture=x64 设置为环境变量,MSBuild 会选择它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多