基于BaGet 构建NuGet私有库并实现类库打包到NuGet私有库

1. BaGet 介绍

BaGet 是一个开源的 NuGet 服务器,旨在提供轻量级、高性能且易于部署的 NuGet 包管理解决方案。它支持多种存储后端(如 Azure Blob StorageAmazon S3Local File Storage System/本地文件系统 等),并且具有高度可定制性和扩展性。

BaGet 源码托管地址为:https://github.com/loic-sharma/BaGet

1.2 主要特点

BaGet 是基于 .NET Core 开发的 NuGet 包服务器应用组件,因此需要运行环境安装 .NET Core SDKBaGet 具有以下特性:

  • 轻量级:BaGet 是一个轻量级的 NuGet 服务器,适合小型到中型项目。
  • 高性能:利用 ASP.NET CoreSQLite/PostgreSQL 提供高性能的服务。
  • 配置持久化:支持多种数据库类型,支持离线缓存。
  • 易于部署:支持 Docker 容器化部署,方便快速搭建。
  • 高度可定制:支持多种存储后端(包括云存储)和配置选项。
  • 安全:支持 HTTPSAPI 密钥认证。

1.3 使用说明

1.3.1 安装与部署

1.3.1.1 Docker 部署
复制代码
# 拉取镜像
docker pull jkempf/baget
# 运行容器
docker run -p 5000:5000 --name baget -d jkempf/baget

这将启动一个默认配置的 BaGet 实例,并映射端口 5000 到宿主机。

1.3.1.2 手动部署
复制代码
# 下载源码
git clone https://github.com/jkempf/baget.git
# 进入代码目录
cd baget
# 安装依赖
dotnet restore
# 构建项目
dotnet publish -c Release -o ./publish
# 运行应用
dotnet ./publish/BaGet.dll
1.3.1.3 配置
  • 使用环境变量配置

    设置环境变量

    export BAGET__STORAGE__TYPE=FileSystem
    export BAGET__STORAGE__PATH=/path/to/packages
    export BAGET__DATABASE__CONNECTION_STRING="Data Source=/path/to/baget.db"
    export BAGET__API_KEY=your-api-key

    运行应用

    dotnet ./publish/BaGet.dll

  • 使用 JSON 配置文件

    创建 json 配置文件

    {

    复制代码
    "Storage": {
     
      "Type": "FileSystem",
      "Path": "/path/to/packages"
    },
    "Database": {
     
      "ConnectionString": "Data Source=/path/to/database.db"
    },
    "ApiKey": "your-api-key" // 此处配置 API 安全密钥

    }

    指定配置文件路径

    dotnet ./publish/BaGet.dll --configuration /path/to/config.json

1.3.1.4 部署成功验证

IIS管理器 → 右键「网站」→ 添加网站: 名称:NuGetServer 物理路径:指向发布文件夹(如D:\DEV\Web\NuGetServer) 端口:建议使用非80端口(如9000)避免冲突 应用程序池 → 设置.NET版本为v4.0,托管模式为「集成」

访问对应的网址,出现如下页面说明部署成功了

1.3.1.5 修改nuget包配置

上传NuGet包 上传之前,需要在 nuget 的配置文件加上源C:\Users\{用户名}\AppData\Roaming\NuGet\NuGet.Config

复制代码
<configuration>
<packagesources>
<add key="BaGet
value="http://192.168.119.180:5555/v3/index.json" allowInsecureConnections="true" />
</packagesources>
</configuration>

1.4 配置Nuget仓库并上传package

下载NuGet

将下载的exe文件放到指定的文件夹中,然后配置环境变量(比如我放在D:\application\Nuget路径下,那么我就将D:\application\Nuget添加到系统环境变量中)

测试是否成功,打开cmd,输入nuget,回车如下图则成功。


nuget.exe spec 生成 NuSpec 文件或者手动创建

执行 nuget.exe pack 打包即可

相关推荐
碳基沙盒5 小时前
OpenClaw 多 Agent 配置实战指南
运维
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅4 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒4 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
zhangfeng11334 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透4 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦4 天前
nginx
运维·nginx
Gofarlic_oms14 天前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab
田井中律.4 天前
服务器部署问题汇总(ubuntu24.04.3)
运维·服务器