什么';s Bin/MSBuild.exe和Bin/amd64/MSBuild.exe之间的差异

什么';s Bin/MSBuild.exe和Bin/amd64/MSBuild.exe之间的差异,msbuild,visual-studio-2017,Msbuild,Visual Studio 2017,我在两个稍有不同的地方发现了它: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64\MSBuild.exe 它们之间有什么区别?我应该使用哪一种 他们之间有什么区别 MSBuild.exe有两个版

我在两个稍有不同的地方发现了它:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64\MSBuild.exe
它们之间有什么区别?我应该使用哪一种

他们之间有什么区别

MSBuild.exe有两个版本,32位和64位

在32位计算机上,MSBuild.exe存在于以下路径中:
C:\Program Files\..\\..\Bin\MSBuild.exe

在64位计算机上,有两个版本的MSBuild.exe工具。32位工具位于以下位置:
Bin\MSBuild.exe
下,64位工具位于以下位置:
Bin\amd64\MSBuild.exe

如果您想了解这两个版本之间的一些差异,可以参考以下博客:

我应该用哪一种

要回答这个问题,您应该知道32位程序和64位程序之间的区别。详情请参阅

  • 如果为任何CPU配置了程序集,则它将在64位计算机上以x64的形式运行,在32位计算机上以x86的形式运行

  • 如果该程序集配置为x86,则它将在64位计算机(即32位进程)上作为WOW64运行,在32位计算机上作为x86运行 机器

  • 如果程序集配置为x64,则它将在64位计算机上以x64的形式运行,而在32位计算机上运行失败

  • 所以您应该使用Bin/MSBuild.exe,它可以在64位计算机上运行,在32位计算机上作为x86运行


    此外,Visual Studio build相当于运行32位MSBuild。

    Microsoft通常提供32位和64位版本的生成工具。64位版本可以处理更大的构建作业。有时这是有用的,例如C++编译器。有时这毫无意义,因为该工具不可能耗尽内存。比如MSBuild。一个极端情况是构建工具本身必须加载64位自定义构建DLL。MSBuild在技术上是可能的。只是技术上。