使用dotnet Cli向nuget发布包
長話短說, 今天分享如何在nuget.org創(chuàng)建并發(fā)布.NET Standard package。
前置
安裝勾選.NET Core開發(fā)套件的Visual Studio; 安裝dotnet Cli
從VS2017開始,dotnet Cli已經(jīng)自動(dòng)在.NET開發(fā)套件中被安裝;使用SDK-style format(SDK屬性)的.NET Standard項(xiàng)目需要dotnet Cli;nuget.exe Cli用于非SDK樣式的項(xiàng)目(通常是.NET Framework)。
創(chuàng)建.NET Standard庫項(xiàng)目
配置package屬性
項(xiàng)目右鍵,選擇屬性--->打包
打包面板只會(huì)出現(xiàn)在VSSDK-style項(xiàng)目,典型如.NET Standard或者.NET Core庫項(xiàng)目。
構(gòu)建時(shí)生成Nuget包:顧名思義,除打包命令,構(gòu)建時(shí)也會(huì)自動(dòng)生成nuget包;
標(biāo)記:幫助其他人定位你的包,了解包的能力。
給package設(shè)定一個(gè)唯一id,并填寫其他屬性。注意這個(gè)package id需要在nuget.org全站唯一,我們建議你使用包前綴名來避免重復(fù),比如:${UserName}.PackageName
打包
將配置改為Release
右鍵項(xiàng)目--> 打包
如果你沒有看到打包命令,你的項(xiàng)目可能不是SDk-style風(fēng)格的項(xiàng)目,這是要使用 nuget.exe Cli(或者遷移到SDK-style項(xiàng)目,再使用dotnet Cli)。
Visual Studio構(gòu)建項(xiàng)目并創(chuàng)建.nupkg文件,插看輸出窗體,獲取包文件的路徑。
發(fā)布包
有了.nupkg文件,你可以從nuget.org獲取一個(gè)API key(這個(gè)Key標(biāo)記了你這個(gè)nuget賬戶),結(jié)合dotnet cli發(fā)布包。
獲取API Key
登陸nuget.org賬戶
點(diǎn)擊右上角你的賬戶名字,選擇API keys
創(chuàng)建---> 選擇范圍--> Push, 在Glob pattern填入*
一旦生成key,請(qǐng)盡早Copy并保存key,這個(gè)key將在dotnet Cli命令中用到
盡快保存你的key,如果你再次返回這個(gè)頁面,你需要重新生成key并Copy.
發(fā)布包
轉(zhuǎn)到包含.nupkg文件的目錄,執(zhí)行下面命令
dotnet nuget push AppLogger.1.0.0.nupkg -k qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 -s https://api.nuget.org/v3/index.json顯示如下結(jié)果:
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.推送命令中的錯(cuò)誤通常表明存在問題 , 如:
您可能忘記了更新項(xiàng)目中的版本號(hào),而嘗試發(fā)布已經(jīng)存在的軟件包。
您嘗試使用主機(jī)上已存在的標(biāo)識(shí)符發(fā)布程序包時(shí),也會(huì)看到錯(cuò)誤:名稱“ AppLogger”已經(jīng)存在。
如果您使用的是有效 API key,則此消息表示命名沖突,從以上錯(cuò)誤的“權(quán)限”部分無法完全看出這一點(diǎn)。更改程序包標(biāo)識(shí)符,重建項(xiàng)目,重新創(chuàng)建.nupkg文件,然后重試push命令。
其他一些包管理的操作,請(qǐng)?jiān)趎uget包管理中心倒騰。
關(guān)注我們
更多技術(shù)干貨及#副業(yè)剛需#
請(qǐng)關(guān)注Dotnet Plus公眾號(hào)
▲
▲
“閱讀全文,體驗(yàn)更佳”
總結(jié)
以上是生活随笔為你收集整理的使用dotnet Cli向nuget发布包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符串太占内存了,我想了各种奇思淫巧对它
- 下一篇: 结合 AOP 轻松处理事件发布处理日志