使用dotnet Cli向nuget釋出包

有態度的小碼甲發表於2020-06-04


長話短說, 今天分享如何在nuget.org建立併發布.NET Standard package。

前置

  1. 安裝勾選.NET Core開發套件的Visual Studio; 安裝dotnet Cli

從VS2017開始,dotnet Cli已經自動在.NET開發套件中被安裝;
使用SDK-style format(SDK屬性)的.NET Standard專案需要dotnet Cli;nuget.exe Cli用於非SDK樣式的專案(通常是.NET Framework)。

  1. 建立.NET Standard庫專案

配置package屬性

  1. 專案右鍵,選擇屬性--->打包
    打包皮膚只會出現在VSSDK-style專案,典型如.NET Standard或者.NET Core庫專案。

構建時生成Nuget包:顧名思義,除打包命令,構建時也會自動生成nuget包;
標記:幫助其他人定位你的包,瞭解包的能力。

  1. 給package設定一個唯一id,並填寫其他屬性。注意這個package id需要在nuget.org全站唯一,我們建議你使用包字首名來避免重複,比如: ${UserName}.PackageName

打包

  1. 將配置改為Release
  2. 右鍵專案--> 打包

如果你沒有看到打包命令,你的專案可能不是SDk-style風格的專案,這是要使用
nuget.exe Cli(或者遷移到SDK-style專案,再使用dotnet Cli)。

  1. Visual Studio構建專案並建立.nupkg檔案,插看輸出窗體,獲取包檔案的路徑。

釋出包

有了.nupkg檔案,你可以從nuget.org獲取一個API key(這個Key標記了你這個nuget賬戶),結合dotnet cli釋出包。

獲取API Key

  1. 登陸nuget.org賬戶
  2. 點選右上角你的賬戶名字,選擇API keys
  3. 建立---> 選擇範圍--> Push, 在Glob pattern填入*
  4. 一旦生成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包管理中心倒騰

相關文章