一個技術汪的開源夢 —— 目錄 微軟的 ASP.Net Core 強化了 Nuget 的使用,所有的 .Net Core 組件均有 Nuget 管理,所以有必要探討一下 .Net Core 組件製作 Nuget 包和發佈。 之前 .Net Framework 程式集打包 Nuget 有以下方法: 1 ...
微軟的 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 。。。。