iT邦幫忙

1

Jenkins 搭配MSBuild 建置與發佈

前言

最近在玩Jenkins,原本以為大家在Jenkins設定上有什麼不方便之類,才會有很多失敗,但這一兩天摸下來看,
最難的就是在不用Visual Studio,只下指令之下建置才是最難的,當我們在爽爽用Visual Studio裡面點一下、
點一下就完成建置東做,裡面就包含許多參數和指令都包含在裡面,不得不佩服Visual Studio的強大,讓我們這些
一開始甚麼都不懂的笨蛋,都可以一鍵搞定,這裡再次感謝Visual Studio強大,但是今天我們就來不用Visual
Studio 使用 MSBuild來完成Jenkins建置與發佈的動作。

環境

Windows 10
Jenkins 2.150.3
MSBuild 14、15

說明

在這邊先說明一下,接下來會有兩種使用MSBuild的方式,如果不使用Visual Studio 2017安裝的方式
安裝MSBuild會有很多設定需要設定和安裝的部分之後可能會把他補上。

使用Visual Studio 2017安裝的MSBuild方式

1.安裝Visual Studio 2017

安裝教學 如Microsoft教學文件
安裝 Visual Studio 2017

2.檢查是否安裝到 MSBuild

到路徑C:\Program Files (x86)\MSBuild看裡面是否有你想要安裝的版本
https://ithelp.ithome.com.tw/upload/images/20190225/20113542wAEPxmfmte.png

3.安裝Jenkins MSBuild套件

管理Jenkins->管理外掛程式
https://ithelp.ithome.com.tw/upload/images/20190224/20113542M2OWKjVbNf.png
可用的->輸入MSBuild->勾->直接安裝
https://ithelp.ithome.com.tw/upload/images/20190226/20113542XgZTFbHcPQ.png
安裝畫面
https://ithelp.ithome.com.tw/upload/images/20190226/20113542fy3twOnu0A.png

4.在Jenkins 設定你 MSBuild

管理Jenkins->Global Tool Configuration
https://ithelp.ithome.com.tw/upload/images/20190226/20113542dzrtKIK0OI.png
找到MSBuild->新增MSBuild
2.MSBuild使用名稱
3.MSBuild路徑
https://ithelp.ithome.com.tw/upload/images/20190226/20113542VzlP6jvEH2.png

以下是MSBuild預設路徑

  • 版本:14(X86) 名稱:VS 2015(x86)路徑: C:\Program Files (x86)\MSBuild\14.0\Bin
  • 版本:14(X64) 名稱:VS 2015(x64)路徑: C:\Program Files (x86)\MSBuild\14.0\Bin\amd64
  • 版本:15(X86) 名稱:VS 2017(x86)路徑: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
  • 版本:15(X64) 名稱:VS 2017(x64)路徑: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64

完整輸入如下面範例
https://ithelp.ithome.com.tw/upload/images/20190226/20113542MtfcwY3E2C.png

4.建置新專案

新增專案

https://ithelp.ithome.com.tw/upload/images/20190224/20113542NgCSQydMa0.png
輸入專案名稱->選擇建置 Free-Style 軟體專案->OK
https://ithelp.ithome.com.tw/upload/images/20190224/20113542TP1qadoNfG.png

設定原始碼管理

輸入你Git的位置->Add->Jenkins
https://ithelp.ithome.com.tw/upload/images/20190225/20113542CF3ZPERpNh.png
輸入Git帳號->Git密碼->Add
https://ithelp.ithome.com.tw/upload/images/20190225/20113542Pwwyyg9vNb.png

設定你的MSBuild

建置->新增建置步驟->Build a Visual Studio project or solution using MSBuild
https://ithelp.ithome.com.tw/upload/images/20190226/20113542urLyMycx6f.png
1.選擇你在Global Tool 設定的MSBuild版本
2.輸入在你專案下你要Build的檔案路徑
3.輸入Build的參數
4.按下存儲
https://ithelp.ithome.com.tw/upload/images/20190226/20113542QdXH1SS5Hz.png

以使用.Net Core MVC Web專案為例做建置

觀看我的專案檔範例結構
1.SLN檔:WebApplication1.sln
2.資料夾之下csproj檔:WebApplication1.csproj
3.FolderProfile部屬檔:FolderProfile.pubxml
(Visual Studio 2017 發佈您的應用程式)
以下這三個檔案記得要Commit上去,這三個檔案會是我們重要設定的內容
https://ithelp.ithome.com.tw/upload/images/20190226/201135424xommT7TMw.png
部屬檔如下
部屬位置為D:\Test
https://ithelp.ithome.com.tw/upload/images/20190226/20113542SYhmPHQd1x.png
範例內容如下
MSBuild Version:選擇VS 2017任何一個版本都可以(也就是MS Build 15版本以上)
MSBuild Build File:因為只想要建置WebApplication1.csproj
Command Line Arguments:(切記以下這些指令接續要多一個空白)

  • /t:Restore :代表如果沒有Nuget套件他會幫你做還原的動作
  • /t:rebuild :代表他不管怎樣都會重新建置這個專案
  • /p:Configuration=Release :選擇你想要建置的版本(Debug、Release、Any CPU等)
  • /p:DeployOnBuild=true:允許建置完發行
  • /p:PublishProfile=FolderProfile.pubxml:選擇要發佈的檔案
  • /p:AllowUntrustedCertificate=true:允許未經信任的認證
  • /p:Password=IIS 發行的使用者密碼
  • /p:Configuration=組態名稱
    https://ithelp.ithome.com.tw/upload/images/20190226/201135421Iz8tU2w93.png

5.開始建置

按下建置按鈕
https://ithelp.ithome.com.tw/upload/images/20190226/20113542bxr4xYnu8w.png
觀看是否成功
看到晴天和上次成功時間有資料代表成功
https://ithelp.ithome.com.tw/upload/images/20190226/20113542QuS8EZGj9j.png
點選#{建置次數}->Console Output
https://ithelp.ithome.com.tw/upload/images/20190226/20113542GxnI5TBJ1f.png
終端機輸出
https://ithelp.ithome.com.tw/upload/images/20190226/20113542emrWNmjtPj.png
看到有建置成功代表OK
https://ithelp.ithome.com.tw/upload/images/20190226/20113542UmCYrvzrXq.png
檢查一下部屬位置是否有檔案
https://ithelp.ithome.com.tw/upload/images/20190226/20113542Bm4lYGMnQK.png
以上確認代表成功,感謝上帝。

結論

先感謝Visual Studio 的開發者原來建置這個動作,幫了省略我們許多細節,當單純使用MSBuild
的時候,搞得我頭快痛死了,少了一個關鍵指令,不是不能動,就是不能還原等等,一次又一次嘗試才知道
建置是多麼煩人的事情,使用MSBuild大概就是會發生以下這樣的事情;先這樣,說不定以後會補上沒有安裝
Visual Studio單純從MSBuild開始的文件。

參考資料

【Jenkins】外掛套件:MSBuild
error MSB4236: The SDK 'Microsoft.NET.Sdk' specified could not be found.
[Jenkins]07-設定建置完成後佈署至IIS站台
[Jenkins] 使用發行設定檔來部屬Asp.Net MVC網站


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言