歡迎光臨
每天分享高質量文章

用ProGet搭建本地私有NuGet倉庫

搭建ProGet

下載

官網下載Windows版本的Inedo Hub (https://inedo.com/proget/download)
下載下來的軟體名: ProGetInstaller.exe

安裝

點擊ProGetInstaller.exe,出現如下安裝界面

Registration 選項選擇 Free ;
SQL Sever 選項選擇 Specify instance,添加Connection string:

Copy

data source=192.168.195.129;user id=sa;password=yourStrong(!)Password;MultipleActiveResultSets=True;

Database Name選項預設的資料庫名稱是ProGet(可以新建一個空庫也可以不建,安裝時,如果沒有對應資料庫,程式會自動創建資料庫)
Hosting 選項預設選擇 Intergrated Web Server ,就是以服務的方式安裝。

添加成功後,SQL Server選項會顯示選中剛剛新加的服務器IP地址

點擊安裝後,輸入名稱和郵件地址來獲取到免費的key。

安裝成功後的IndeoHub界面

在Services裡面可以看到有兩個服務正在運行,ProGet的服務和其Web服務。

通過Windows的任務管理器里的服務也可以看到這兩個服務。

InedoHub的Configuration界面是ProGet的相關配置信息,包括資料庫鏈接字串,Key,以及ProGet的網站端口號。

本機IP為192.168.1.48,所以訪問 http://192.168.1.48:8624 ,出現如下界面說明ProGet安裝成功。

配置

點擊網站的頭像部分,然後點擊登錄

網站的管理員賬號及初始密碼是Admin/Admin。

登錄管理員賬號後,設置Task

給匿名用戶添加 Publish Packages (發包)權限。

添加Connectors,添加NuGet官方配置

新增Feed,選擇第三方包NuGet,Feed 名稱為ZeroGet。

新建成功

進入ZeroGet,我們會發現沒有任何包,點擊 Manage Feed 按鈕,進入該Feed的管理界面,在Feed Connectors 專案裡面,點擊 add connector 按鈕,選擇先前新建的名叫Nuget的Connector。

再次進入ZeroGet的Feed界面,結果如下,我們把NuGet官網的包信息也同步過來了!

上傳程式集

下載NuGet

NuGet官網下載地址 https://www.nuget.org/downloads
將下載好的nuget.exe放在特定的位置,例子的路徑是 D:\Program Files (x86)\NuGet\nuget.exe

設置環境變數

如下圖,編輯環境變數Path,新增nuget.exe的所在檔案夾路徑,這樣cmd命令列就可以直接使用nuget命令進行相關的打包操作了

專案打包

修改專案程式集信息

這裡介紹的是簡單的通過修改專案的AssemblyInfo.cs檔案來修改程式集的發佈信息。

打開AssemblyInfo.cs檔案,一般是修改如下內容就夠了

Copy

[assembly: AssemblyDescription("這是描述的信息")]
[assembly: AssemblyCompany("Zero")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyVersion("1.0.1")]
[assembly: AssemblyFileVersion("1.0.1")]

專案打包

在打包之前,先編譯生成一遍專案。
運行cmd命令列,進入到要打包的專案的.csproj檔案所在目錄下,運行如下命令

Copy

nuget pack -Build -Properties Configuration=Release

結果如下,成功生成Zero.Test.1.0.1.nupkg檔案

上傳到本地倉庫

在本地的ProGet網站的對應ZeroGet的Feed裡面有添加包的 Add Package 按鈕,點擊後,提升如下四種添加方式,我們是通過NuGet的命令列來進行添加的,點擊對應選項。

點擊通過NuGet的命令列來進行添加的對應選項後,彈出如下提示內容。

上面命令腳本如下,[API key]的選項是可選的,可以不填。

Copy

NuGet.exe push <package path> [API key] -Source http:

承接上面的具體操作,在成功生成nupkg檔案後,運行下麵的腳本

Copy

nuget push Zero.Test.1.0.1.nupkg -Source http:

結果如下圖:

瀏覽器訪問本地ProGet,顯示信息如下

進入ZeroGet的Feed裡面,我們可以看到剛剛本地新上傳的程式集是置頂顯示的。

點擊測試的程式集,查看程式集具體信息,作者信息,描述信息,版本信息都是我們程式裡面編輯的。

查看程式集依賴和專案比較,也是一樣的。



OK,打包並上傳成功,下麵就是要本地專案使用剛剛的程式集了。

下載使用程式集

獲取包源

在ZeroGet的Feed頁面,顯示有API endpoint URL:http://192.168.1.48:8624/nuget/ZeroGet/,
該路徑就是ZeroGet的包源路徑。

添加包源

打開VS,工具》NuGet包管理器》程式包管理器設置

點擊NuGet包管理器下的程式包源,點擊新增按鈕,新增ZeroGet本地包源,如下圖。

使用包源

在專案下,右擊打開“管理NuGet程式包”,將程式抱怨切換到ZeroGet,如下圖所示,我們就可以看到我們剛剛上傳到本地庫的程式集信息了。

點擊安裝後,自動安裝該程式集以及它的依賴項。如下圖。

驗證程式取用正常

下圖是Zero.Test專案代碼,簡單的將物件轉換成字串型別。

下圖是在控制台專案,用NuGet應用程式集Zero.Test後,呼叫Zero.Test.Convertor.GetObjString方法的執行結果,說明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
赞(0)

分享創造快樂