10分鐘學(xué)會(huì)Visual Studio將自己創(chuàng)建的類庫(kù)打包到NuGet進(jìn)行引用(net,net core,C#)
前言
NuGet就是一個(gè)包(package)管理平臺(tái),確切的說(shuō)是 .net平臺(tái)的包管理工具,它提供了一系列客戶端用于生成,上傳和使用包(package),以及一個(gè)用于存儲(chǔ)所有包的中心庫(kù)。
對(duì)于一個(gè)現(xiàn)代化的開(kāi)發(fā)平臺(tái),建立一種讓開(kāi)發(fā)者創(chuàng)建,分享與使用可復(fù)用代碼的機(jī)制是十分必要的。這種“可復(fù)用代碼”被打包后的文件通常被稱作“包”(package),
對(duì)于.NET(包括 .NET Core)平臺(tái)來(lái)說(shuō)這個(gè)機(jī)制的實(shí)現(xiàn)就是NuGet平臺(tái)。
NuGet的實(shí)現(xiàn)均為開(kāi)源項(xiàng)目,包括了客戶端工具,服務(wù)器,官方網(wǎng)站以及各語(yǔ)言的文檔等。
NuGet包的本質(zhì)是一個(gè)以nupkg為后綴的zip壓縮文件(你可以將后綴改為.zip后解壓查看里面的內(nèi)容),其中包含了編譯后的Dll文件以及其他相關(guān)文件。
圖1:顯示nuget包從創(chuàng)建,上傳到被使用的流程
對(duì)于引用大家都會(huì)使用,但是對(duì)于創(chuàng)建NuGet引用就不怎么會(huì)了,我們下面就介紹怎么打包dll類庫(kù)到NuGet平臺(tái)進(jìn)行引用。
創(chuàng)建類庫(kù)方法
我們首先創(chuàng)建一個(gè)可調(diào)用的類庫(kù),以“繁簡(jiǎn)體相互轉(zhuǎn)換”為例,當(dāng)然你也可以創(chuàng)建其他的,比如獲取配置文件、http請(qǐng)求幫助類等。
這里使用的環(huán)境是vs2019, .NET Core2.1,使用.NET也可以,這里可根據(jù)自己的使用環(huán)境創(chuàng)建。
注意:類庫(kù)是什么環(huán)境,引用也需要什么環(huán)境。(.NET Core和.NET不能相互混用)。
創(chuàng)建一個(gè).NET Core類庫(kù)項(xiàng)目,命名為“XiongZeUtils”(自定義命名),然后在類庫(kù)項(xiàng)目下創(chuàng)建一個(gè)繁簡(jiǎn)體項(xiàng)目轉(zhuǎn)換的類,命名為“xzUtils”(自定義)。
注意,繁簡(jiǎn)體相互轉(zhuǎn)換需要現(xiàn)在NuGet引入包ChineseConverter,然后在類里面引用using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter,如下:
創(chuàng)建完成后記得需要先編譯生成dll文件
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter; using System; namespace XiongZeUtils { public static class xzUtils { /// <summary> /// 簡(jiǎn)體轉(zhuǎn)換為繁體 /// </summary> /// <param name="str">簡(jiǎn)體字</param> /// <returns>繁體字</returns> public static string GetTraditional(string str) { string r = string.Empty; r = ChineseConverter.Convert(str, ChineseConversionDirection.SimplifiedToTraditional); return r; } /// <summary> /// 繁體轉(zhuǎn)換為簡(jiǎn)體 /// </summary> /// <param name="str">繁體字</param> /// <returns>簡(jiǎn)體字</returns> public static string GetSimplified(string str) { string r = string.Empty; r = ChineseConverter.Convert(str, ChineseConversionDirection.TraditionalToSimplified); return r; } } }
創(chuàng)建完成后記得需要先編譯生成dll文件
NuGet發(fā)布到服務(wù)器
1、登錄NuGet賬號(hào)獲取API keys
官網(wǎng)地址:https://www.nuget.org/
如果你有Microsoft 帳戶,直接登錄即可。如果沒(méi)有則需去創(chuàng)建一個(gè)。
NuGet登錄快捷入口:https://www.nuget.org/users/account/LogOn
(注冊(cè)地址入口比較難找,下面快捷入口直接點(diǎn)擊即可注冊(cè))
NuGet注冊(cè)賬號(hào)快捷入口:https://signup.live.com/?lic=1
備用方案:
NuGet.org 上的個(gè)人帳戶:https://docs.microsoft.com/en-us/nuget/nuget-org/individual-accounts
獲取您的 API 密鑰
1.登錄您的 nuget.org 帳戶或創(chuàng)建一個(gè)帳戶(如果您還沒(méi)有)。
有關(guān)創(chuàng)建帳戶的更多信息,請(qǐng)參閱個(gè)人帳戶。
2.選擇您的用戶名(在右上角),然后選擇API Keys。
3.選擇Create,為您的密鑰提供一個(gè)名稱,選擇Select Scopes > Push。為Glob 模式輸入 *,然后選擇Create。(有關(guān)范圍的更多信息,請(qǐng)參見(jiàn)下文。)
4.創(chuàng)建密鑰后,選擇復(fù)制以在 CLI 中檢索您需要的訪問(wèn)密鑰:
5.重要提示:將您的密鑰保存在安全位置,因?yàn)槟院鬅o(wú)法再次復(fù)制該密鑰。如果返回 API 密鑰頁(yè)面,則需要重新生成密鑰才能進(jìn)行復(fù)制。如果您不想再通過(guò) CLI 推送包,您也可以刪除 API 密鑰。
范圍允許您為不同的目的創(chuàng)建單獨(dú)的 API 密鑰。每個(gè)密鑰都有其到期時(shí)間范圍,并且可以限定為特定的包(或 glob 模式)。每個(gè)鍵也適用于特定操作:推送新包和更新、僅推送更新或下架。通過(guò)范圍界定,您可以為為您的組織管理包的不同人員創(chuàng)建 API 密鑰,以便他們僅擁有所需的權(quán)限。有關(guān)更多信息,請(qǐng)參閱作用域 API 密鑰。
2、下載Nuget.exe并發(fā)布項(xiàng)目
點(diǎn)擊下載nuget.exe
https://www.nuget.org/downloads
我這里下載的是5.9.1版本的,版本這里沒(méi)有特別的要求。
這里只有6M多一點(diǎn),下載太慢了,我把下載好的放在gitee上,大家直接點(diǎn)擊下載解壓即可。
下載地址1(git):https://gitee.com/xiongze/nugetexe-file.git
下載地址2(百度網(wǎng)盤):鏈接: https://pan.baidu.com/s/1cykLq1RH3pqv_dfm9FAFjg 提取碼: nhb3
3、NuGet發(fā)布到服務(wù)器
將下載下來(lái)的nuget.exe與剛才新建的類庫(kù)放在同一目錄下。
配置發(fā)布信息,并將發(fā)布路徑指向或拷貝到與剛才新建的類庫(kù)放在同一目錄下。
①、找到vs對(duì)應(yīng)的開(kāi)發(fā)人員命令提示(不能用cmd直接打開(kāi))
或者C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2019\Visual Studio Tools
②命令提示定位到Nuget.exe所在的目錄
雙擊運(yùn)行Developer Command Prompt for VS 2019
cd到項(xiàng)目類庫(kù)的目錄
③通過(guò)命令 nuget setapikey xxxxx-xxxx-xxx-xxxx-xxxx-xxxx(我們上面nuget copy的key), 設(shè)置API Key
通過(guò)命令 nuget setapikeyxxxxx-xxxx-xxx-xxxx-xxxx-xxxx , 設(shè)置API Key;
④生成xxxx.nuspec文件
nuspec是NuGet將項(xiàng)目打包成nupkg的輸入文件,可以通過(guò)nuget spec命令產(chǎn)生。
通過(guò)命令 nuget spec 生成xxxx.nuspec文件;
⑤NuGet發(fā)布到服務(wù)器
通過(guò)命令 nuget.exe push xxxxx.nupkg -Source https://www.nuget.org ,將NuGet發(fā)布到服務(wù)器。
打包成功后,這里需要等待3-10分鐘左右,打包成功后nuget就能查詢到我們打包的引用了,如果沒(méi)有的多等待一下。
使用NuGet包
我們這個(gè)時(shí)候就可以在NuGet里面搜索到我們的類庫(kù)了,我們引入進(jìn)來(lái)使用一下。
在項(xiàng)目中引入我們的nuget包,然后調(diào)用得到下面內(nèi)容
參考文獻(xiàn)
[NET,C# ] Nuget包發(fā)布流程:https://www.52pojie.cn/thread-1434899-1-1.html
NuGet是什么:https://zhuanlan.zhihu.com/p/36207092
nuget官網(wǎng)地址:https://www.nuget.org/
到此這篇關(guān)于10分鐘學(xué)會(huì)Visual Studio將自己創(chuàng)建的類庫(kù)打包到NuGet進(jìn)行引用(net,net core,C#)的文章就介紹到這了,更多相關(guān)NuGet打包類庫(kù)引用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ListView用法中與滾動(dòng)相關(guān)的需求實(shí)現(xiàn)
這篇文章主要介紹了ListView用法中與滾動(dòng)相關(guān)的需求實(shí)現(xiàn),獲取并設(shè)置ListView的滾動(dòng)位置,以及獲取滾動(dòng)位置處的項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06C#實(shí)現(xiàn)關(guān)機(jī)重啟及注銷實(shí)例代碼
這篇文章主要介紹了C#實(shí)現(xiàn)關(guān)機(jī)重啟及注銷實(shí)例代碼,適合新手參考學(xué)習(xí)之用,需要的朋友可以參考下2014-07-07探討C#中Dispose方法與Close方法的區(qū)別詳解
本篇文章是對(duì)C#中Dispose方法與Close方法的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06C#開(kāi)發(fā)WinForm根據(jù)條件改變DataGridView行顏色
這篇文章介紹了C#開(kāi)發(fā)WinForm根據(jù)條件改變DataGridView行顏色的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03c#入門之循環(huán)語(yǔ)句使用詳解(for循環(huán)、do/while)
這篇文章主要介紹了c#入門之循環(huán)語(yǔ)句使用詳解,有for循環(huán)和do/while的示例,需要的朋友可以參考下2014-04-04C#實(shí)現(xiàn)OFD格式與PDF格式的互轉(zhuǎn)
OFD格式的文檔是一種我國(guó)獨(dú)有的國(guó)家標(biāo)準(zhǔn)版式的文檔。本文將通過(guò)C#程序介紹如何實(shí)現(xiàn)由OFD與PDF的互相轉(zhuǎn)換,感興趣的小伙伴可以了解一下2022-02-02