在安裝測試Jenkins時, 因為要用到MSBuild, 而安裝build tools則是必要的動作, 在查找相關資料和安裝資源時, 發現原來在開發機上到處放了MSBuild.exe, 而且版本各不相同, 感覺有一種裝到哪、放到哪、隨處放的任性, 想想稍微來了解一下。
首先是在 C:\Windows\Microsoft.NET\ 底下各個主要Framework版本內有, 例如:
- C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
- C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
而組件版本呢則是按其前面v版本的最新更新版本, 例如: \v4.0.30319, 我的環境上已更新到.NET 4.8了, 所以組件版本則是4.8.3752.0。以上這些看來是隨著系統上安裝.NET Framework的版本而一併放進來的。
因為也有安裝Visual Studio, 所以在 C:\Program Files (x86)\ 底下也有放, 例如:
- C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe
- C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe
這裡我安裝的有VS 2013及2017, 這些看來就是隨著Visual Studio安裝時一併放的, 而組件版本則是隨著\Bin前面的版本來定, 例如: VS 2017算是\15.0, 所以組件版本是如 15.9.21.664。Visual Studio的位置各個版本不同, 看來頗有歷史變遷的意味, 例如VS 2019又換個方式(MSBuild 16.0 的新功能):
- C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe
另外, 還可以在每個Visual Studio版本的開發人員命令提示字元Shell Command中查看各個版本內定MSBuild的位置, 例如:


