Bin/MSBuild.exe和Bin/amd64/MSBuild.exe有什么区别?

7

在寻找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

它们之间有什么区别,我应该使用哪一个?

1
微软通常会提供32位和64位版本的构建工具。当期望处理更大的构建作业时,64位版本可以派上用场。例如,C++编译器有时是很有用的。但有时候这是没有意义的,因为该工具不可能耗尽内存。就像MSBuild一样。一个特殊情况是构建工具本身需要加载64位自定义构建DLL。在技术上对于MSBuild是可能的,但仅仅是技术上的。 - Hans Passant
1个回答

12
“它们之间有什么区别?”
“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 下。”
“如果您想知道这两个版本之间的一些区别,可以参考博客:Building on Cross targeting scenarios and 64-bit MSBuild。”
“‘我应该使用哪个?’要回答这个问题,您应该了解32位程序和64位程序之间的区别。有关详细信息,请参阅this document。”
如果程序集配置为Any CPU,它将在64位机器上以x64运行,在32位机器上以x86运行;如果程序集配置为x86,它将在64位机器上以WOW64(即32位进程)运行,在32位机器上以x86运行;如果程序集配置为x64,它将在64位机器上以x64运行,无法在32位机器上运行。
因此,您应该使用可在64位机器上以x86运行的Bin/MSBuild.exe。另外,Visual Studio构建等效于运行32位MSBuild。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接