為 Jenkins 配置 .NET 持續集成環境


去年年底,得益於公司引入 Jenkins,讓我們在持續集成方面邁出了第一步,本文不贅述如何安裝 Jenkins,主要關注點在於配置 .Net 環境。另外本文是在 Windows 環境下安裝的 Jenkins 進行操作。

一、安裝環境

首先我們需要先准備幾個安裝包,將它們安裝到 Windows 上: 

.NET Framework 4.6.1 https://www.microsoft.com/zh-cn/download/details.aspx?id=49982
Microsoft Build Tools 2015 https://www.microsoft.com/zh-CN/download/details.aspx?id=48159
.NET Framework 4.6.1 Developer Pack https://www.microsoft.com/zh-CN/download/details.aspx?id=49978
NuGet x86 Commandline https://dist.nuget.org/index.html

 

 

 

 

第一個當然是大家熟悉的 .NET Framework 運行環境了;

第二是 MSBuild,雖然平時我們使用 Visual Studio 都是圖形界面編譯、發布程序,但實際上 Visual Studio 是去調用 MSBuild 來進行各種操作的,所以我們要想讓 Jenkins 也能自動編譯代碼,也要為它准備一套 MSBuild。

第三個包為 .NET Framework 4.6.1 開發人員包(Developer Pack),在過去稱為 Targeting Pack,里面包含了一堆程序集。像是早期版本的 Visual Studio 2013,發布之時並沒有 .NET Framework 4.6.1,要想讓它支持就需要安裝這個開發人員包。如果不安裝的話,后期編譯 4.6.1 的程序時會提示找不到 System.Object、System.Attribute 程序集的錯誤。4.6.1 的開發人員包包含了 4.0、4.5、4.6 Targeting Pack 的內容,安裝 4.6.1 的包就不需要安裝 4.0 其他版本的包了。另外如果需要中文支持,需要先安裝英文版,再安裝中文語言包。

最后一項為 NuGet 的控制台程序,在編譯程序之前,先需要使用 NuGet 進行包還原。這個軟件不需要安裝,放在一個固定的位置就行,例如放在 D:\Tools\CI 下。

 

二、安裝 Jenkins 插件

進入 Jenkins 的插件管理頁面,安裝 MSBuild 插件,地址為:https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin

安裝好之后,之后進入 “Global Tool Configuration” 界面:

 

在打開的頁面里找到“MSBuild”一欄,先點擊“MSBuild 安裝”,再點擊“新增 MSBuild” 按鈕,即可配置 MSBuild.exe 的路徑。由於我使用 32 位的 MSBuild,所以可以這樣配置:

MSBuild 的默認安裝路徑

32位 C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
64位 C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe

 

 

配置好之后不要忘了保存。

 

三、Jenkins Job 配置

准備好了運行環境和 Jenkins 插件,我們新建一個 Job 試一試。我們公司使用的是 Subversion,所以我會從 SVN 下載代碼,使用 Git 等倉庫也大同小異,這里就略過了。

1. 還原 NuGet 程序包

我們需要在“構建”一欄中,新增一個“Execute Windows batch command”(執行批處理命令)步驟,用來進行 NuGet 包還原

1 D:\tools\CI\nuget.exe restore .\YourSolutionName.sln

首先是指定 nuget.exe 的路徑,然后使用 restore 命令,對當前目錄下的 YourSolutionName.sln 解決方案文件進行包還原。大家根據自己實際情況進行修改即可。

 

2. 配置 MSBuild 編譯參數

依然是在“構建”一欄,新建一個“Build a Visual Studio project or solution using MSBuild”(使用 MSBuild 生成 VS 項目或解決方案)步驟

從上往下,依次是

  • 選用的 MSBuild 版本
  • 目標項目或解決方案文件的路徑+文件名
  • MSBuild 參數

這里主要講一下“Command Line Arguments”的配置,更全面的 MSBuild 文檔可以參閱 MSDN:https://msdn.microsoft.com/zh-CN/library/dd393574.aspx

我希望生成一個 ASP.NET MVC 項目,並發布到文件系統中,主要用到:

  • /t:Rebuild 重新生成
  • /p:Configuration=Release Release 生成模式
  • /p:VisualStudioVersion=14.0 指定子工具集(https://msdn.microsoft.com/zh-cn/library/bb383796.aspx)版本,不設置會報錯
  • /p:DeployOnBuild=True;PublishProfile=Testing-Environment-CI-publish 使用 Testing-Environment-CI-publish.pubxml 發布文件來發布項目

 

四、補充

[2017年1月24日09:30更新]

不好意思,昨晚發布文章時遺漏了這一點。如果按上面的配置,使用 MSBuild 編譯項目,可能會遇到這樣的錯誤:

未找到導入的項目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets”

這時候只需要找一台安裝了 Visual Studio 2015 的計算機,將 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0 目錄里的所有內容都拷貝到 Jenkins 所在的 Windows 系統的這個目錄下,然后重新構建,就可以了。

 


 

后面可能還會發一些有關 Jenkins 集成 xUnit.net 單元測試和自動發布方面的一些內容,不過不知道年前還能不能發出來了 XD 

希望文章能對大家有作用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM