十分鐘搭建自己的私有NuGet服務器-BaGet

前言

NuGet是用於微軟.NET(包括 .NET Core)開發平台的軟件包管理器。NuGet能夠令你在項目中添加、移除和更新引用的工作變得更加快捷方便。

通常使用NuGet都是官方的服務,但你有沒有想過搭建自己的NuGet呢?在私有的NuGet上託管一些自己的類庫,公司內部的類庫等。。。搭建私有NuGet的方法有很多,比如NuGet.Server、ProGet、MyGet等等。本文使用的是BaGet,搭建過程也非常簡單,下面進入正題。

開始

搭建BaGet

BaGet是一個構建於ASP.NET Core 基礎上的 NuGet V3 服務器的開源實現。

github地址://github.com/loic-sharma/BaGet

下載release包,我下載的是最新預覽版,你也可以選擇其他版本:

//github.com/loic-sharma/BaGet/releases/download/v0.3.0-preview4/BaGet.zip

你可以按需要修改一下端口配置,默認是5000:

在解壓目錄下打開命令行,執行:dotnet BaGet.dll

瀏覽器訪問://localhost:8020/

這樣,NuGet服務就搭建完成了,是不是很簡單?

上傳程序包

隨便創建一個類庫項目用於測試:

右鍵項目,選擇打包:

打包完成會得到一個nupkg文件:

當然,你也可以選擇Release模式:

看一下Upload命令:

在上面打包目錄下打開命令行執行:dotnet nuget push -s //localhost:8020/v3/index.json MyTestLibrary.1.0.0.nupkg

再次查看Packages:

在vs中使用

在vs2019中打開:工具-選項-NuGet包管理器-程序包源。添加一個源,輸入名稱,源://localhost:8020/v3/index.json

接下來就可以正常使用了:

其他

程序包的作者,說明,版本號等信息可以在這裡修改:

依賴項也完全不用擔心:

最後

因為BaGet是基於ASP.NET Core開發,所以天生跨平台,你可以在windows,mac,linux或者docker中輕鬆部署。另外,BaGet也沒有複雜的環境依賴,數據庫默認Sqlite,很輕量,部署起來非常容易。

當然,本文一開始也提到,搭建私有NuGet的方式有很多,如有需要可以參考微軟官方說明://docs.microsoft.com/zh-cn/nuget/hosting-packages/overview