Windows 下 Jenkins 集成 .net mvc 項目

3年前 (2020-11-29) Yosheng 資訊教學 0評論 已收錄 1567℃

筆記一下在 windows server 2019 下安裝 jenkins 後如何配置 .net mvc 項目的發布,畢竟當時踩了很多坑🤦‍♂️,也是出於自對 jenkins 的不熟悉吧😂。

安裝插件並配置

Git

服務器安裝 Git

官方網站 根據系統選擇版本下載後打開一直下一步進行安裝即可,就不詳細說明了👻

Jenkins 配置

先到套件中心安裝 Git 後打開如附圖配置,因為預設安裝 git 會將該工具加入環境變量中所以才可以直接調用🚀,否則得自己輸入絕對位置


MSBuild

服務器安裝 MSBuild

先到官方網站下載工具 如下附圖

貌似從 VS 2017 版本以後的 Build Tool 都採用這種下載模式安裝不像過去都是一個 msi 安裝包


下載完成後到目錄底下輸入以下命令後會進行離線下載

下載完成後如下圖,會看到下載很多的套件,建議封裝成 ISO鏡像 再傳送到服務器上面


上傳到服務器後進行安裝即可

也許你會好奇為什麼要這麼麻煩? 因為服務器上沒有翻牆,所以下載很慢😂如附圖


這裡補充一下加速方式🚀修改 C:\Windows\System32\drivers\etc\hosts 文件 再最底下添加紀錄如下 110.53.72.104 download.visualstudio.microsoft.com 即可,速度如下圖


最後會跳出下圖彈框,中間會感覺卡很久補一下 Enter 就好🤦‍♂️,當時不知道就這樣白跑一晚上


Jenkins 配置

先到套件中心安裝 MSBuild 接著到附圖位置進行配置即可,這裡要注意因為我安裝的是 VS 2019 提供的 Build Tool 所以路徑如下

根據不同版本的 MSBuild Tool 路徑都會不同,其次是我開發環境使用 VS 2019 為了保持開發佈署相同才會選擇該版本🙈,編譯可以根據項目進行參數配置向下兼容👻


nuget

直接到 官方網站 下載執行檔即可,我是直接放在附圖路徑中方便後面調用


添加項目

添加項目確保已經配置好 git、MSBuild、nuget,不然建置會有各種錯誤

Jenkins 點選添加作業後如附圖,輸入名稱後選擇建置 Free-Style 軟體專案即可


配置原始碼管理

因為我自己架設 Gitea 所以URL為 Gitea 上面提供的 Repository 位置,之後再添加 Credentials 即可,這裡配置完可以先建置一次看看是否獲取成功👻


配置建置

添加執行 windows 批次指令用來還原項目中依賴的套件,指令如下,「%WORKSPACE%」是Jenkins提供的工作目錄變量

接著添加 MSBuild 參數如下,因為我 iis 跟 jenkins 同台服務器所以發佈到 publishUrl 指定的位置上,這點可以根據自己需求修改🧐

補充說明:

有些文章使用 PublishProfile 參數進行配置,前提項目中已經配置過 pubxml文件 否則會因為找不到出錯🙈,另外 MSBuild 可以單獨編譯 csproj 進行發布

/t是/target的縮寫,/p是/property的縮寫,多個屬性間用分號或逗號分隔,最後不需要分號或逗號。舉例: /p:DeployOnBuild=True;PublishProfile=Testing-Environment-CI-publish

最後配置如下圖

以上都配置完成後點選儲存→馬上建置😉就可以囉

錯誤解決

Caused by: java.io.IOException: Cannot run program "git.exe"

這個原因是 git 沒有安裝導致,或者是環境變量沒有配置好🤦‍♂️


MSBUILD : error MSB1009: 项目文件不存在。

這個原因是找不到 Sln 但實際上目錄存在🤷‍♂️,最後是修改預設路徑位置


因為是我的 Jenkins 是預設安裝所以預設目錄在 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins.jenkins ,打開目錄中 config.xml 並修改 workspaceDir 參數如附圖


修改完成在重新建置就好了🤷‍♂️,很神奇,當時我尚未配置這參數時嘗試修改項目的絕對路徑還是報錯🤦‍♂️就是各種改都會報錯,總之很坑

 

博主

擅長使用 C# 和 Java 開發項目,全棧開發工程師,前端主要使用 Vue 其次 Angular ,目前正在學習分布式架構,運維研發兼具,平時愛好鑽研技術並應用於實務當中,常駐於上海。

相關推薦

相逢就是有緣,留下足跡吧!