您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)基于.Net Core 的組件Nuget包制作及發(fā)布是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
微軟的 ASP.Net Core 強(qiáng)化了 Nuget 的使用,所有的 .Net Core 組件均有 Nuget 管理,所以有必要探討一下 .Net Core 組件制作 Nuget 包和發(fā)布。
之前 .Net Framework 程序集打包 Nuget 有以下方法:
1. 使用命令 nuget pack 詳見博客園的一篇博文 《用命令行工具創(chuàng)建 Nuget 程序包》;
2. 使用 NuGet Package Explorer;
3. vs 插件 NuBuild Project System。
這其中第 3 種方法是最好用的,可以直接在 vs 中制作 Nuget 包,然后用方法 2 校驗(yàn)生成的 Nuget 包對不對或者微調(diào)發(fā)布,亦可以用 nuget 命令進(jìn)行包的推送。
下面說 .Net Core 組件的打包
微軟既然所有的 .Net Core 組件均有 Nuget 去管理,那它肯定會出一個(gè)打包工具或者命令,沒錯(cuò)下面就開始說一下 dotnet pack 命令。
想必大家之前肯定用過 dotnet 相關(guān)的命令,那今天說一下它的打包命令 dotnet pack 這里的打包就是打成 nuget 包。
包生成
執(zhí)行命令 dotnet pack --help 看一下有啥子參數(shù)。
-h 不用說了就是查看幫助;
-o 指定生成的nuget包要輸出到那個(gè)目錄下;
--no-build 打包時(shí)不要編譯項(xiàng)目;
-b 項(xiàng)目編譯時(shí)的臨時(shí)輸入目錄;
-c 配置使用 Debug 模式還是 Release 模式(默認(rèn)為 Debug);
-version-suffix 如果 project.json 中的項(xiàng)目版本以 * 結(jié)尾,這個(gè)參數(shù)可以指定參數(shù)將 * 替換掉;
-s 指定是否僅供內(nèi)部 nuget 使用。
以下是簡單示例:
1. project.json 文件目錄下執(zhí)行命令: dotnet pack -c Release -o Nugets
2. 非 project.json 文件目錄下執(zhí)行命令:
dotnet pack -c Release -o Nugets src\Wlitsoft.Framework.Common.Abstractions\project.json
打包后會生成兩個(gè)文件
Wlitsoft.Framework.Common.Abstractions.0.1.1-Beta.nupkg
Wlitsoft.Framework.Common.Abstractions.0.1.1-Beta.symbols.nupkg
第一個(gè)文件是 Nuget 包文件,第二個(gè)是包括源碼的 Nuget 包文件。
命名規(guī)則為:項(xiàng)目文件夾名稱 + 版本號(project.json 內(nèi)指定的 version),沒有搞明白怎么修改默認(rèn)的命名生成規(guī)則。
注意:版本號后綴帶 - xxx 標(biāo)示預(yù)發(fā)行版本。
包檢查
包已經(jīng)生成成功了那咱用 NuGet Package Explorer 打開看眼生成的對不對,當(dāng)然亦可用壓縮文件軟件將 nupkg 文件打開查看 nuget 包的描述文件。
包上傳
如果是開源項(xiàng)目的話,包可以上傳到 Nuget 官方服務(wù)器,如果是公司內(nèi)部私有項(xiàng)目的話那就上傳到內(nèi)部是私有 Nuget 服務(wù)器或者文件共享服務(wù)器中(Nuget 源支持文件共享源)。
1. 在 Nuget 官網(wǎng)上傳。
2. 使用 Nuget 命令上傳
該方法需要提交生成一個(gè) key ,然后使用命令向 Nuget 服務(wù)器推送包。
校驗(yàn)上傳結(jié)果
打開 vs 的 Nuget 查詢看有沒有上傳的包。
看完上述內(nèi)容,你們對基于.Net Core 的組件Nuget包制作及發(fā)布是怎樣的有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。