搭建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:
承接上面的具體操作,在成功生成nupkg檔案後,運行下麵的腳本
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
朋友會在“發現-看一看”看到你“在看”的內容