搭建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該程序集正常工作,引用正常。