一、前言
Nuget是ASP .NET Gallery的一員,是免費、開源的包管理工具,專注於在.Net / .Net Core應用開發過程中第三方組件庫的管理,相對於傳統單純的dll引用要方便、科學得多。其中nuget.org是最著名的Nuget公開庫,但是企業內部開發的(業務)公共組件不可能都往公開庫上傳,所以,企業內部需要一個私有的Nuget倉庫來支持。雖然微軟有提供的Nuget Server,但Nuget Server用起來並不那么順手,或者說感覺有點low。因此,本文將介紹Nexus搭建的Nuget倉庫,希望能給大家多一個選擇。
二、下載安裝Nexus
具體操作請看這里
三、Nuget倉庫說明
如上圖所示,其實Nexus默認已經創建好了Nuget的倉庫,並且是創建了3個不同類型的倉庫:nuget-group,nuget-hosted,nuget.org-proxy
nuget.org-proxy
類型是proxy,表示代理倉庫。我們向它請求包(package)的時候,如果本地有,它就從本地提供,如果本地沒有,它會從nuget.org下載到本地,然后給我提供這個包。
nuget-hosted
類型是hosted,表示托管倉庫。我們一般把自己開發的包上傳到該倉庫中。
nuget-group
類型是group,表示倉庫組,它結合了nuget.org-proxy和nuget-hosted,能對外提供上述兩者中的包。
我們可以使用以上默認的幾個倉庫來保存nuget包,當然也可以自己創建先的倉庫來存放,如下圖:
接下來我就以將包上傳到默認的nuget-hosted為例。
四、上傳nuget包
1、下載nuget命令行工具
到 官網 下載最新推薦的nuget.exe,將下載的exe文件復制到C:\Windows\System32目錄,這樣我們就可以直接使用nuget命令行了。
2、添加Nuget Realms
因為Nexus認證Nuget是通過Realms來認證,因此,要添加Nuget Realms。
3、獲取倉庫地址以及Nuget API Key
倉庫地址在設置->選擇倉庫->復制地址,如下圖:
獲取Nuget API Key
輸入登錄密碼即可,如下圖:
4、上傳Nuget包
這里默認大家已經准備好nuget包了,指令模板:nuget push {dll}.nupkg {apiKey} -source {http://customsource/}
其中:
{dll}.nupkg:nuget包所在的路徑,可以是相對路徑也可以是絕對路徑
{apiKey} 和{http://customsource/}:這兩個在上一步已經交大家怎么獲取了
完整上傳命令參考:nuget push E:\WorkPlace\vs2017\Test\ErikDll\ErikDll\bin\Release\ErikDll.1.0.0.nupkg eb0497e8-5519-3f22-8e9f-f2eae720feb5 -source http://192.168.132.137:8081/repository/nuget-hosted/
完成后我們可以在Nexus上看到我們上傳的包:
五、在VS中使用Nuget包
1、 打開Visual Studio的Nuget管理器,進行設置
2、添加私有Nuget倉庫地址
3、引用nuget包
解決方案右鍵->管理解決方案的nuget包