長話短說, 今天分享如何在nuget.org創建併發布.NET Standard package。
前置
- 安裝勾選.NET Core開發套件的Visual Studio; 安裝dotnet Cli
從VS2017開始,dotnet Cli已經自動在.NET開發套件中被安裝;
使用SDK-style format
(SDK屬性)的.NET Standard項目需要dotnet Cli;nuget.exe Cli用於非SDK樣式的項目(通常是.NET Framework)。
- 創建.NET Standard庫項目
配置package屬性
- 項目右鍵,選擇
屬性
--->打包
打包
面板只會出現在VSSDK-style
項目,典型如.NET Standard或者.NET Core庫項目。
構建時生成Nuget包
:顧名思義,除打包命令,構建時也會自動生成nuget包;
標記
:幫助其他人定位你的包,瞭解包的能力。
- 給package設定一個唯一id,並填寫其他屬性。注意這個package id需要在nuget.org全站唯一,我們建議你使用包前綴名來避免重複,比如: ${UserName}.PackageName
打包
- 將配置改爲
Release
- 右鍵項目--> 打包
如果你沒有看到打包命令,你的項目可能不是SDk-style風格的項目,這是要使用
nuget.exe Cli(或者遷移到SDK-style項目,再使用dotnet Cli)。
- Visual Studio構建項目並創建
.nupkg
文件,插看輸出窗體,獲取包文件的路徑。
發佈包
有了.nupkg文件,你可以從nuget.org獲取一個API key(這個Key標記了你這個nuget賬戶),結合dotnet cli發佈包。
獲取API Key
- 登陸nuget.org賬戶
- 點擊右上角你的賬戶名字,選擇
API keys
- 創建---> 選擇範圍--> Push, 在Glob pattern填入*
- 一旦生成key,Copy並儘早保存key,這個key將在dotnet Cli命令中用到
儘快保存你的key,如果你再次返回這個頁面,你需要重新生成key並Copy.
發佈包
轉到包含.nupkg文件的目錄,執行下面命令
dotnet nuget push AppLogger.1.0.0.nupkg -k qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 -s https://api.nuget.org/v3/index.json
顯示如下結果:
info : Pushing AppLogger.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
info : PUT https://www.nuget.org/api/v2/package/
info : Created https://www.nuget.org/api/v2/package/ 12620ms
info : Your package was pushed.
推送命令中的錯誤通常指示問題原因,如:
- 您可能忘記了更新項目中的版本號,而嘗試發佈同簽名軟件包。
- 您嘗試使用主機上已存在的包標記符發佈程序包時,也會看到錯誤:名稱“ AppLogger”已經存在。
Response status code does not indicate success: 403 (The specified API key is invalid,
has expired, or does not have permission to access the specified package.).
如果您確認使用的是有效API key,則此錯誤提示不準確,實際錯誤是命名衝突。
更改程序包標識符,重建項目,重新產生.nupkg文件,然後重試push命令。
以上便是向nuget發佈包的主要過程。
其他一些包管理的操作,請在nuget包管理中心倒騰