日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

开发.NET Core NuGet包并实现CI/CD

發(fā)布時(shí)間:2023/12/4 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开发.NET Core NuGet包并实现CI/CD 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)際開(kāi)發(fā)中我們需要對(duì)一些公共類(lèi)庫(kù)進(jìn)行開(kāi)發(fā),并基于Jenkins進(jìn)行CI/CD(CI:持續(xù)集成,CD:持續(xù)部署),其他項(xiàng)目通過(guò)NuGet引用。上文講述了如何搭建本地NuGet服務(wù)器并發(fā)布NuGet包,這里不再贅述。

CI/CD流程如下圖:

首先公共類(lèi)庫(kù)代碼通過(guò)Git管理,編輯完代碼后上傳到Git服務(wù)器。

配置Jenkins Job,按設(shè)定的觸發(fā)條件進(jìn)行構(gòu)建任務(wù)。

構(gòu)建開(kāi)始,刪除Workspace中舊文件,從Git服務(wù)器下載最新代碼,執(zhí)行編譯,生成NuGet包,上傳到NuGet服務(wù)器。

這樣,別人就可以引用或者更新最新的公共類(lèi)庫(kù)的NuGet包進(jìn)行業(yè)務(wù)開(kāi)發(fā)了。

在Visual Studio中操作

  • 自定義打包類(lèi)庫(kù)

新建一個(gè).net core 的類(lèi)庫(kù),在工程文件處右鍵,選擇屬性,在“打包”中勾選“在版本中生成NuGet包”,然后設(shè)置基本信息。如下圖:

編譯生成,就會(huì)在Debug/Release目錄生成一個(gè)nupkg文件:

  • 自動(dòng)更新編譯版本

關(guān)于版本號(hào):
這里指Net Framework風(fēng)格的版本號(hào),
即,主版本號(hào).子版本號(hào)[.編譯版本號(hào)[.修訂版本號(hào)]]
英文對(duì)照:
Major_Version_Number.Minor_Version_Number[.Build_Number[.Revision_Number]]
主版本號(hào)和次版本號(hào)是必選的;
編譯版本號(hào)和修訂號(hào)是可選的,但是如果定義了修訂號(hào)部分,則編譯版本號(hào)就是必選的。
所有定義的部分都必須是大于或等于 0 的整數(shù)。
應(yīng)根據(jù)下面的約定使用這些部分:
Major?:具有相同名稱(chēng)但不同主版本號(hào)的程序集不可互換。例如,這適用于對(duì)產(chǎn)品的大量重寫(xiě),這些重寫(xiě)使得無(wú)法實(shí)現(xiàn)向后兼容性。
Minor?:如果兩個(gè)程序集的名稱(chēng)和主版本號(hào)相同,而次版本號(hào)不同,這指示顯著增強(qiáng),但照顧到了向后兼容性。例如,這適用于產(chǎn)品的修正版或完全向后兼容的新版本。
Build?:編譯版本號(hào)(內(nèi)部版本號(hào))的不同表示對(duì)相同源所作的重新編譯。這適合于更改處理器、平臺(tái)或編譯器的情況。
Revision?:名稱(chēng)、主版本號(hào)和次版本號(hào)都相同但修訂號(hào)不同的程序集應(yīng)是完全可互換的。這適用于修復(fù)以前發(fā)布的程序集中的安全漏洞。

在Visual Studio中選擇NuGet包管理器,搜索“MSBump”,安裝,然后在工程文件下新建一個(gè).msbump文件,寫(xiě)入如下代碼:

{Configurations: { ? ?"Debug": {BumpLabel: "dev",LabelDigits: 4}, ? ?"Release": {BumpRevision: true,ResetLabel: "dev"}} }

上文表示:當(dāng)編譯配置為“Debug”時(shí),版本號(hào)生成一個(gè)dev前綴后面跟四位數(shù)字的標(biāo)簽,數(shù)字從0001開(kāi)始遞增。當(dāng)編譯配置為“Release”時(shí),修訂版本號(hào)會(huì)+1,清除dev標(biāo)簽。當(dāng)然,也可以直接在.msbump中這樣寫(xiě):

{BumpRevision: true}

意思就是每次編譯不管debug還是release,都會(huì)使修訂版本號(hào)+1

在Jenkins中操作

前提操作:
需要下載NuGet.exe,并且把NuGet.exe所在目錄和MSBuild所在目錄加入到環(huán)境變量中,這樣方便在Jenkins中直接使用msbuild和nuget命令。

  • 安裝Jenkins

這里不再贅述,自行百度,就是安裝Java那套環(huán)境

  • 新建任務(wù)

新建任務(wù),起個(gè)名字,選擇“構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目”,點(diǎn)擊“OK”:

  • 編輯配置信息

我們用的是Git管理代碼,所以源代碼管理里選擇Git,輸入倉(cāng)庫(kù)地址和用戶(hù)名密碼,選擇需要拉取的分支名稱(chēng):

觸發(fā)條件,可以根據(jù)自己的需求,比如每日定時(shí)調(diào)度:

編譯環(huán)境中選擇編譯開(kāi)始前清空Workspace,保證拉取最新代碼不沖突:

編譯步驟中,選擇執(zhí)行Windows批處理命令,主要執(zhí)行如下操作:
1.進(jìn)入工程文件目錄
2.還原所有依賴(lài)的包
3.執(zhí)行編譯Release版本
4.進(jìn)入Releas目錄
5.將生成的nupkg文件推送到NuGet服務(wù)器
6.由于生成操作修改的修訂版本號(hào),所以將修改的文件提交

代碼:

cd GAIA.GIS\ msbuild -t:restore msbuild /p:Configuration=Releasecd bin\Release\ nuget push *.nupkg -Source http://192.168.1.209:1024/nuget iwehave2305! git commit -a -m updateversion

如圖 :

創(chuàng)建編譯后事件,將修改記錄推送到git服務(wù)器,也可以加失敗郵件通知等等操作:

保存

立即構(gòu)建測(cè)試一下,大功告成~

原文地址: https://www.cnblogs.com/hao-zhang/p/10178641.html

.NET社區(qū)新聞,深度好文,歡迎訪(fǎng)問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com


總結(jié)

以上是生活随笔為你收集整理的开发.NET Core NuGet包并实现CI/CD的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。