用ProGet搭建本地私有NuGet倉庫

搭建ProGet

下載

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

安裝

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

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

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文件,一般是修改如下內容就夠了

[assembly: AssemblyDescription("這是描述的信息")]//程序集的描述
[assembly: AssemblyCompany("Zero")]//程序集的作者或所屬公司
[assembly: AssemblyCopyright("Copyright ©  2019")]//程序集版權信息
[assembly: AssemblyVersion("1.0.1")]//程序集版本
[assembly: AssemblyFileVersion("1.0.1")]//文件版本一般與程序集版本一致

項目打包

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

nuget pack  -Build -Properties Configuration=Release

結果如下,成功生成Zero.Test.1.0.1.nupkg文件
圖片

上傳到本地倉庫

在本地的ProGet網站的對應ZeroGet的Feed裏面有添加包的 Add Package 按鈕,點擊後,提升如下四種添加方式,我們是通過NuGet的命令行來進行添加的,點擊對應選項。
圖片
點擊通過NuGet的命令行來進行添加的對應選項後,彈出如下提示內容。
圖片
上面命令腳本如下,[API key]的選項是可選的,可以不填。

NuGet.exe push <package path> [API key] -Source http://192.168.1.48:8624/nuget/ZeroGet/

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

nuget push Zero.Test.1.0.1.nupkg  -Source http://192.168.1.48:8624/nuget/ZeroGet/

結果如下圖:
圖片
瀏覽器訪問本地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該程序集正常工作,引用正常。
圖片

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章