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

用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)

分享創造快樂