程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 一個技術汪的開源夢 —— 基於 .Net Core 的組件 Nuget 包制作 & 發布,corenuget

一個技術汪的開源夢 —— 基於 .Net Core 的組件 Nuget 包制作 & 發布,corenuget

編輯:關於.NET

一個技術汪的開源夢 —— 基於 .Net Core 的組件 Nuget 包制作 & 發布,corenuget


微軟的 ASP.Net Core 強化了 Nuget 的使用,所有的 .Net Core 組件均有 Nuget 管理,所以有必要探討一下 .Net Core 組件制作 Nuget 包和發布。

之前 .Net Framework 程序集打包 Nuget 有以下方法:

1. 使用命令  nuget pack  詳見博客園的一篇博文 《用命令行工具創建 Nuget 程序包》;

2. 使用 NuGet Package Explorer;

3. vs 插件 NuBuild Project System。

這其中第 3 種方法是最好用的,可以直接在 vs 中制作 Nuget 包,然後用方法 2 校驗生成的 Nuget 包對不對或者微調發布,亦可以用 nuget 命令進行包的推送。

下面說 .Net Core 組件的打包

微軟既然所有的 .Net Core 組件均有 Nuget 去管理,那它肯定會出一個打包工具或者命令,沒錯下面就開始說一下  dotnet pack  命令。

想必大家之前肯定用過 dotnet 相關的命令,那今天說一下它的打包命令 dotnet pack 這裡的打包就是打成 nuget 包。

包生成

  執行命令 dotnet pack --help 看一下有啥子參數。

  

  -h 不用說了就是查看幫助;

  -o 指定生成的nuget包要輸出到那個目錄下;

  --no-build 打包時不要編譯項目;

  -b 項目編譯時的臨時輸入目錄;

  -c 配置使用 Debug 模式還是 Release 模式(默認為 Debug);

  -version-suffix 如果 project.json 中的項目版本以 * 結尾,這個參數可以指定參數將 * 替換掉;

  -s 指定是否僅供內部 nuget 使用。

以下是簡單示例:

1. project.json 文件目錄下執行命令: dotnet pack -c Release -o Nugets 

2. 非 project.json 文件目錄下執行命令:

 dotnet pack -c Release -o Nugets src\Wlitsoft.Framework.Common.Abstractions\project.json 

打包後會生成兩個文件

    Wlitsoft.Framework.Common.Abstractions.0.1.1-Beta.nupkg

    Wlitsoft.Framework.Common.Abstractions.0.1.1-Beta.symbols.nupkg

第一個文件是 Nuget 包文件,第二個是包括源碼的 Nuget 包文件。

命名規則為:項目文件夾名稱 + 版本號(project.json 內指定的 version),沒有搞明白怎麼修改默認的命名生成規則。

注意:版本號後綴帶 - xxx 標示預發行版本。

包檢查

包已經生成成功了那咱用 NuGet Package Explorer 打開看眼生成的對不對,當然亦可用壓縮文件軟件將 nupkg 文件打開查看 nuget 包的描述文件。

 

包上傳

如果是開源項目的話,包可以上傳到 Nuget 官方服務器,如果是公司內部私有項目的話那就上傳到內部是私有 Nuget 服務器或者文件共享服務器中(Nuget 源支持文件共享源)。

1. 在 Nuget 官網上傳。

2. 使用 Nuget 命令上傳

    該方法需要提交生成一個 key ,然後使用命令向 Nuget 服務器推送包。

 

校驗上傳結果

打開 vs 的 Nuget 查詢看有沒有上傳的包。

 

最後熱烈慶祝 Visual Studio 出 Mac 版本了,但有一個文件不支持 VS 2015 最新的 xproj 項目文件,只支持 csproj 。。。。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved