1.介绍
BaGet是一个轻量级的包管理服务。有些时候公司或者个人不希望某一些包进行公开,那么就需要使用私有的包管理服务程序,该服务是用.netcore进行编写的
Github:https://github.com/loic-sharma/BaGet
官网:https://loic-sharma.github.io/BaGet/
2. Docker部署
创建配置文件baget.env
ApiKey=63edf12c-b70c-45c7-b3ed-f53c9f791e26 # 随机生成,上传包时候使用
Storage__Type=FileSystem
Storage__Path=/var/baget/packages #Linux(windows: E:\nuget)
Database__Type=Sqlite
Database__ConnectionString=Data Source=/var/baget/baget.db
Search__Type=Database
在当前目录下执行
# linux
docker run -d --name BaGet-nuget -p 5555:80 --env-file baget.env -v "$(pwd)/baget-data:/var/baget" loicsharma/baget:latest
# windows
docker run -d --name BaGet-nuget -p 5555:80 --env-file baget.env -v "E://nuget//baget-data:/var/baget" loicsharma/baget:latest
3. 访问
通过访问地址:localhost:5555 进入主界面
访问一下这个服务,可以看到服务成功运行起来了。但是现在一个包都没有,所以显示的是 nothing here …
4. 构建
要推送 NuGet 包,首先我们需要包我们的库打包成 NuGet 包。
项目右键属性,在打包这个 tab 页上勾选 “在构建时生成 NuGet 包”,这样每次生成项目完成的时会在bin目录下生成对应的 nuget 包。
5. 推送
Nuget 包打包完成后,就可以推送自己的包到这个服务了。
dotnet nuget push -s http://192.168.3.190:15555/v3/index.json .\BusTools.1.0.1.nupkg
使用 dotnet nuget push 命令进行推送
推送成功会显示“已推送包”,期间有个警告,因为我们没有设置 apikey ,这个忽略。
6. 使用
为了能够让我们的 VisualStudio 能够检索 到,需要设置NuGet源。
打开 VS > 工具 > 选项 > NuGet 包管理器 > 程序包源,点击绿色的加号,配置源名称mapsoft, 地址:
http://192.168.3.190:15555/v3/index.json 点击确定。
随便打开一个项目解决方案,在 NuGet 包检索页面选择程序包源给 “mapsoft” ,浏览页面就会列出这个源当前具有的包。这样就可以正常进行管理与安装了。