[Jenkins]持續整合之路(二)準備編譯.NET程式的環境(安裝MSBuild及NuGet Plugin)

支援的專案都是以.NET(C#)開發為主,走進CI持續整合之前,得先幫Jenkins Server準備好可以編譯.NET程式的環境並且完成Jenkins的MSBuild組態工作。在建置過程中,專案也可能需要還原NuGet 上的套件,同時library專案建置完成後,也希望將編譯並且測試好的套件發佈到公司內的Private NuGet Server,好,來完成準備工作。

 

今天先完成NuGet與MSBuild的準備工作

前置條件:

      安裝Visual Studio 2015/2017 或 Microsoft Build Tools 14/15來獲得MSBuild環境。

預計需要花10-20分鐘完成MSBuild及NuGet的安裝及組態。

 


安裝MSBuild Plugin

管理 Jenkins > 管理外掛程式

選擇可用的Tab,過濾條件輸入msbuild,勾選安裝,最後按下直接安裝按鈕。

如果只安裝MSBuild plugin,但沒有組態msbuild執行檔位置,我們會收到以下錯誤訊息。

'msbuild.exe' 不是內部或外部命令、可執行的程式或批次檔。

等NuGet plugin也安裝後,我們馬上來組態MSBuild Plugin

 


Nuget plugin安裝

選擇可用的Tab,過濾條件輸入nuget,勾選安裝,最後按下直接安裝按鈕。

兩個plugins都安裝好了~

然後,重新啟動Jenkins

 


組態MSBuild Plugin

管理 Jenkins > Global Tool Configuration

滑鼠滾到MSBuild區塊,依序新增兩組MSBuild(MSBuild14、MSBuild15)

Name: MSBuild14

Path to MSBuild: C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\

 

Name: MSBuild15

Path to MSBuild: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\

 

最後按下Global Tool Configuration下方的save按鈕

 


下載Nuget 執行檔

直接到NuGet網站下載

https://www.nuget.org/downloads

把NuGet.exe執行檔丟在C:\Program Files (x86)\Jenkins目錄。

 


組態Nuget Plugin

管理 Jenkins > 設定系統

在Nuget區塊設定NuGet.exe的執行目錄

  • NuGet command line executable:填上把剛剛下載好的Nuget.exe執行檔路徑: C:\Program Files (x86)\Jenkins\NuGet.exe
  • NuGet Publications: 專案完成Build及測試後,我們會發佈新的套件到公司內的NuGet Server,因此要填一下NuGet Server Url及Api key。

最後按下儲存

 


設定NuGet config檔案

為了讓Jenkins建置時也能透過NuGet還原套件,我們這邊也要幫新的CI Server設定NuGet套件來源

打開Visual Studio,工具 > 選項 > 確認可用的套件來源

或是搜尋NuGet.config,手動編輯packageSource

 


驗證MSBuild and NuGet

如果有設定完成,當我們新增作業(Job)時,在建置區塊就會出現:

 

在建置後動作也會多出現Publish NuGet packages的選項

 

這篇完成了MSBuild及Nuget的安裝及組態,下一篇搭配版控先架好Build Server的功能。

碰過客戶要我們把專案拔掉所有NuGet,一般組件參考解除安裝後,重新用檔案方式參考還算容易,只要多注意組態檔案是否可能有一併被刪除的情形要排除,但Web專案的套件就讓人很吃力。

 

 

紐約中央公園

 


參考

MSBuild Plugin

Integrate Jenkins with MSBuild and NuGet

yowko 如何使用 Jenkins 2 建置 .NET 專案

Available NuGet Distribution Versions