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

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

1、安裝環境

首先咱們須要先準備幾個安裝包,將它們安裝到 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.五、4.6 Targeting Pack 的內容,安裝 4.6.1 的包就不須要安裝 4.0 其餘版本的包了。另外若是須要中文支持,須要先安裝英文版,再安裝中文語言包。測試

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

 

2、安裝 Jenkins 插件

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

安裝好以後,以後進入 「Global Tool Configuration」 界面:.net

 

在打開的頁面裏找到「MSBuild」一欄,先點擊「MSBuild 安裝」,再點擊「新增 MSBuild」 按鈕,便可配置 MSBuild.exe 的路徑。因爲我使用 32 位的 MSBuild,因此能夠這樣配置:插件

MSBuild 的默認安裝路徑rest

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

 

 

配置好以後不要忘了保存。

 

3、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 發佈文件來發布項目

 

4、補充

[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 

但願文章能對你們有做用。

相關文章
相關標籤/搜索