長話短說, 今天分享如何在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包管理中心倒騰