.NET Core項目完全使用Nuget 管理組件之間的依賴關系,Nuget已經成為.NET 生態系統中不可或缺的一個組件,從項目角度,將項目中各種組件的引用統統交給NuGet,添加組件/刪除組件/以及更新組件即可一鍵完成,大大提升工作效率,減少不必要的引用報錯。從運維角度,可在不影響老版本的情況下發布新版本,可統一管理公司各個項目中組件版本不一和各個版本組件的使用情況,減少故障發生以並使得項目穩定運行。
nuget.org 有個指南Hosting Packages Overview 告訴你如何自己搭一個nuget Server,社區還有下面的幾個相關方案都可以實現自己搭建Nuget Server:
- Nexus: 支持NuGet, 他也是可以免費使用的,對於要同時支持Maven等的可以考慮,對於純粹的.NET支持上有點重
- MyGet: 這是一個Nuget雲服務,不適合企業內的私有部署
- Self-hosted feeds: 小團隊使用可以,很快你就會掉到坑里,一個很簡陋的NuGet服務器很難以滿足各方面的需求
- ProGet,它和Nexus一樣雖然是商業軟件,支持nuget、npm、docker等,但它是.NET生態應用,而且還提供了免費版本,博客園也是用ProGet,具體參看dudu的文章《用ProGet搭建內部的NuGet服務器》。
下面我們就來看看如何使用ProGet搭建一個內部的NuGet服務器,由於時間的關系dudu的安裝方法已經不適用了,實質上ProGet分為綠色版和安裝包兩個版本,綠色版就是dudu上面所說的,而簡單點的是直接安裝包安裝,跟着向導做就可以了,下面介紹下綠色版的安裝:
1、 瀏覽器打開http://inedo.com/proget/versions 並下載最新的4.3.1 Manual Install版
2、 解壓下載文件,得到3個文件夾:ProGet-Service 、ProGet-WebApp與ProGet-DbChangeScripter
3、 參考http://inedo.com/support/documentation/proget/installation/manual ,我們使用IIS來承載,需要安裝數據庫和IIS 站點。
4、 在IIS中創建一個站點指向ProGet-WebApp文件夾,應用程序池配置為經典模式(Classic)。[注:如果采用集成模式(Integrated),會出現HTTP Error 403.14 - Forbidden錯誤]。
5、 在SQL Server中創建一個名為ProGet的數據庫,然后運行ProGet-DbChangeScripter文件夾中的bmdbupdate.exe程序。出現命令行菜單,輸入update(進行update操作),接着輸入數據庫連接字符串回車,默認true,繼續回車(進行數據庫初始化操作),然后會進行數據庫初始化操作。
6、 在完成數據庫初始化操作之后,修改一下web.config中的數據庫連接字符串,然后就可以正常訪問自己搭建的ProGet站點。
7、 去ProGet的官網 my.inedo.com 注冊一個帳戶並獲取免費版的License Key,登錄進入自己搭建的ProGet站點,點擊“Licensing and Activation”,輸入之前得到的License Key進行激活。激活后就可以正常使用ProGet
8、 進入 Manage Default Feed ,修改一下Disk Path的值,設置為存放packages文件的物理路徑。
除了用於存放自己的nuget packages,ProGet還可以通過connector連接到遠程的nuget.org服務器,這樣可以把ProGet站點作為nuget.org的緩存服務器。