2017-09-15 88 views
0

was looking for MSBuild.exe,我发现它在两个略有不同的地方:什么斌/ MSBuild.exe和斌/ AMD64的区别/ 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 

什么是它们之间的差异,这是我应该使用?

+0

微软通常使构建工具在他们的32位和64位版本中都可用。在哪里可以预期64位版本可以处理更大的构建作业。有时候这很有用,例如C++编译器。有时候这是没有意义的,因为这个工具不可能永远耗尽内存。像MSBuild一样。一个角落案例是构建工具本身必须加载64位定制构建DLL。技术上可行的MSBuild。只在技术上。 –

回答

0

它们之间有什么区别?

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

  1. 如果组件被构造成用于任何CPU然后将运行在64位机器上x64和x86的作为一个32位机器上。

  2. 如果程序集配置为x86,那么它将作为64位机器上的WOW64(即32位进程)和32位机器上的x86运行。

  3. 如果组件被配置用于基于x64那么将运行在64位机器上的x64和将无法在32位机

所以你应该使用斌上运行/ MSBuild.exe,它可以在64位机器上运行,也可以在32位上运行在x86上。

此外,Visual Studio构建等同于运行32位MSBuild。