2017-09-15 29 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。