用ProGet搭建本地私有NuGet仓库
搭建ProGet
下載
官網(wǎng)下載Windows版本的Inedo Hub (https://inedo.com/proget/download)
下載下來的軟件名: ProGetInstaller.exe
安裝
點(diǎn)擊ProGetInstaller.exe,出現(xiàn)如下安裝界面
Registration 選項(xiàng)選擇 Free ;
SQL Sever 選項(xiàng)選擇 Specify instance,添加Connection string:
Database Name選項(xiàng)默認(rèn)的數(shù)據(jù)庫名稱是ProGet(可以新建一個(gè)空庫也可以不建,安裝時(shí),如果沒有對(duì)應(yīng)數(shù)據(jù)庫,程序會(huì)自動(dòng)創(chuàng)建數(shù)據(jù)庫)
Hosting 選項(xiàng)默認(rèn)選擇 Intergrated Web Server ,就是以服務(wù)的方式安裝。
添加成功后,SQL Server選項(xiàng)會(huì)顯示選中剛剛新加的服務(wù)器IP地址
點(diǎn)擊安裝后,輸入名稱和郵件地址來獲取到免費(fèi)的key。
安裝成功后的IndeoHub界面
在Services里面可以看到有兩個(gè)服務(wù)正在運(yùn)行,ProGet的服務(wù)和其Web服務(wù)。
通過Windows的任務(wù)管理器里的服務(wù)也可以看到這兩個(gè)服務(wù)。
InedoHub的Configuration界面是ProGet的相關(guān)配置信息,包括數(shù)據(jù)庫鏈接字符串,Key,以及ProGet的網(wǎng)站端口號(hào)。
本機(jī)IP為192.168.1.48,所以訪問?http://192.168.1.48:8624?,出現(xiàn)如下界面說明ProGet安裝成功。
配置
點(diǎn)擊網(wǎng)站的頭像部分,然后點(diǎn)擊登錄
網(wǎng)站的管理員賬號(hào)及初始密碼是Admin/Admin。
登錄管理員賬號(hào)后,設(shè)置Task
給匿名用戶添加?Publish Packages?(發(fā)包)權(quán)限。
添加Connectors,添加NuGet官方配置
新增Feed,選擇第三方包NuGet,Feed 名稱為ZeroGet。
新建成功
進(jìn)入ZeroGet,我們會(huì)發(fā)現(xiàn)沒有任何包,點(diǎn)擊?Manage Feed?按鈕,進(jìn)入該Feed的管理界面,在Feed Connectors?項(xiàng)目里面,點(diǎn)擊?add connector?按鈕,選擇先前新建的名叫Nuget的Connector。
再次進(jìn)入ZeroGet的Feed界面,結(jié)果如下,我們把NuGet官網(wǎng)的包信息也同步過來了!
上傳程序集
下載NuGet
NuGet官網(wǎng)下載地址?https://www.nuget.org/downloads
將下載好的nuget.exe放在特定的位置,例子的路徑是 D:\Program Files (x86)\NuGet\nuget.exe
設(shè)置環(huán)境變量
如下圖,編輯環(huán)境變量Path,新增nuget.exe的所在文件夾路徑,這樣cmd命令行就可以直接使用nuget命令進(jìn)行相關(guān)的打包操作了
項(xiàng)目打包
修改項(xiàng)目程序集信息
這里介紹的是簡(jiǎn)單的通過修改項(xiàng)目的AssemblyInfo.cs文件來修改程序集的發(fā)布信息。
打開AssemblyInfo.cs文件,一般是修改如下內(nèi)容就夠了
[assembly: AssemblyCompany("Zero")]
[assembly: AssemblyCopyright("Copyright ? 2019")]
[assembly: AssemblyVersion("1.0.1")]
[assembly: AssemblyFileVersion("1.0.1")]
項(xiàng)目打包
在打包之前,先編譯生成一遍項(xiàng)目。
運(yùn)行cmd命令行,進(jìn)入到要打包的項(xiàng)目的.csproj文件所在目錄下,運(yùn)行如下命令
結(jié)果如下,成功生成Zero.Test.1.0.1.nupkg文件
上傳到本地倉庫
在本地的ProGet網(wǎng)站的對(duì)應(yīng)ZeroGet的Feed里面有添加包的 Add Package 按鈕,點(diǎn)擊后,提升如下四種添加方式,我們是通過NuGet的命令行來進(jìn)行添加的,點(diǎn)擊對(duì)應(yīng)選項(xiàng)。
點(diǎn)擊通過NuGet的命令行來進(jìn)行添加的對(duì)應(yīng)選項(xiàng)后,彈出如下提示內(nèi)容。
上面命令腳本如下,[API key]的選項(xiàng)是可選的,可以不填。
承接上面的具體操作,在成功生成nupkg文件后,運(yùn)行下面的腳本
nuget push Zero.Test.1.0.1.nupkg -Source http:結(jié)果如下圖:
瀏覽器訪問本地ProGet,顯示信息如下
進(jìn)入ZeroGet的Feed里面,我們可以看到剛剛本地新上傳的程序集是置頂顯示的。
點(diǎn)擊測(cè)試的程序集,查看程序集具體信息,作者信息,描述信息,版本信息都是我們程序里面編輯的。
查看程序集依賴和項(xiàng)目比較,也是一樣的。
OK,打包并上傳成功,下面就是要本地項(xiàng)目使用剛剛的程序集了。
下載使用程序集
獲取包源
在ZeroGet的Feed頁面,顯示有API endpoint URL:http://192.168.1.48:8624/nuget/ZeroGet/,
該路徑就是ZeroGet的包源路徑。
添加包源
打開VS,工具》NuGet包管理器》程序包管理器設(shè)置
點(diǎn)擊NuGet包管理器下的程序包源,點(diǎn)擊新增按鈕,新增ZeroGet本地包源,如下圖。
使用包源
在項(xiàng)目下,右擊打開“管理NuGet程序包”,將程序抱怨切換到ZeroGet,如下圖所示,我們就可以看到我們剛剛上傳到本地庫的程序集信息了。
點(diǎn)擊安裝后,自動(dòng)安裝該程序集以及它的依賴項(xiàng)。如下圖。
驗(yàn)證程序引用正常
下圖是Zero.Test項(xiàng)目代碼,簡(jiǎn)單的將對(duì)象轉(zhuǎn)換成字符串類型。
下圖是在控制臺(tái)項(xiàng)目,用NuGet應(yīng)用程序集Zero.Test后,調(diào)用Zero.Test.Convertor.GetObjString方法的執(zhí)行結(jié)果,說明Zero.Test該程序集正常工作,引用正常。
參考
https://docs.microsoft.com/zh-cn/nuget/tools/cli-ref-pack
https://docs.microsoft.com/zh-cn/nuget/reference/msbuild-targets
https://docs.microsoft.com/en-us/dotnet/core/tools/csproj#nuget-metadata-properties
https://www.jianshu.com/p/429cce1323e2
https://www.cnblogs.com/lovecsharp094/p/5527204.html
原文地址:https://www.cnblogs.com/zerodai/p/10796535.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總?http://www.csharpkit.com?
總結(jié)
以上是生活随笔為你收集整理的用ProGet搭建本地私有NuGet仓库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kafka基本知识整理
- 下一篇: CQRS架构下Equinox开源项目分析