2017-08-02 33 views
0

之間MSBUILD.exe的我有VS2017開發的C#項目。使用不同版本的開發和詹金斯機

服務器上詹金斯運行沒有安裝VS。我有.NET 4.7的開發計算機和服務器安裝。

這是我所得到的,當我鍵入msbuild.exe /版本:

微軟(R)構建引擎版本XXX(見下文)

  • 在開發,我有2個MSBUILD.exe :

    • C:\ MicrosoftVisualStudio \ 2017年\專業\的MSBuild \ 15.0 \斌:15.1.1012.6693
    • C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319:4.7.2053.0
  • 在服務器:C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319:4.7.2053.0

我認爲,當我建立VS2017的一個項目,它使用MSBUILD .exe位於MicrosoftVisualStudio文件夾中。

我現在關心的是建立在詹金斯的機器上使用不同版本的MSBUILD.exe的?最好的方法是什麼?將文件夾C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild複製到Jenkins計算機上?

+0

無論使用Visual Studio文件夾MsBuild.exe或.Net框架的MSBuild它不只要解決依賴關係可用 – Suresh

回答

0

這取決於什麼MSBuild的功能,你使用。

在VS 2017中開發項目的安全方法是從完整的VS安裝或Build Tools for Visual Studio 2017中使用安裝的VS版本的MSBuild(15)構建。

儘管.NET Framework版本的MSBulid將能夠構建大量項目,但它僅限於較舊的C#版本,因此您必須安裝Microsoft.Net.Compilers NuGet包來替換編譯器。但是,VS 2017引入了新的MSBuild語法功能,並且構建了無法修補到MSBuild舊版本的任務,因此非常不鼓勵使用它。

+0

謝謝。那麼你推薦什麼?如果我只是從VS2017複製msbuild文件夾,或者我應該安裝VS2017,它是否工作?我不能使用社區版本,我不想要爲jenkins購買第二個VS Pro許可證 – vincedjango

+0

我建議使用這些構建工具,它們是爲了在這種情況下使用。 –

0

我正在使用服務器上的這個版本MSBUILD.exe的幾個錯誤:C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319:4.7.2053.0

下面是步驟遵循builwithout錯誤一個VS2017 C#上詹金斯2.60.2

  1. 複製C:\ MicrosoftVisualStudio \ 2017年\專業\的MSBuild到我的服務器
  2. 在詹金斯/全球工具配置,在MSBUILD部分

    • 名稱:msbuild.exe
    • 路徑的MSBuild:C:\的MSBuild \ 15.0 \斌
    • 默認參數:-p:FrameworkPathOverride =「C:\ Program Files文件(x86)的\參考大會\微軟\框架。NETFramework \ V4.7"

如果默認參數是空的,我得到的錯誤,所以它是非常重要的。