基于 BaGet 搭建 Nuget 服务器
1 前言
1.1 BaGet 介绍
BaGet 是一个轻量级的,开源的,跨平台的 Nuget 和 symbol 服务器。
1.2 环境介绍
操作系统:CentOS 7
使用 Docker 安装
2 安装步骤
2.1 配置文件
登录 Linux 服务器以后,在 /root 目录下,创建一个 baget.env 文件:
touch baget.env
使用 vim 进入编辑:
vim baget.env
输入下面内容,将 ApiKey 设置为自己的密码:
# The following config is the API Key used to publish packages.
# You should change this to a secret value to secure your server.
ApiKey=NUGET-SERVER-API-KEY
Storage__Type=FileSystem
Storage__Path=/var/baget/packages
Database__Type=Sqlite
Database__ConnectionString=Data Source=/var/baget/baget.db
Search__Type=Database
更多的配置,可以查看:BaGet's configuration
2.2 拉取 Docker 镜像
docker pull loicsharma/baget
2.3 启动 Baget
docker run --rm --name nuget-server -p 5555:80 --env-file baget.env -v "$(pwd)/baget-data:/var/baget" loicsharma/baget:latest
-p 5555:80 是把 docker 内的 80 端口映射到服务器的 5555 端口。
启动如果没有报错,则访问 http://服务器ip:5555,如 http://192.168.10.20:5555 即可成功访问
3 上传 Nuget 包
3.1 新建一个类库
使用 vs2022 新建一个类库,命名 MessageLib
namespace MessageLib;
public class MessageLib
{
public string Version { get; } = "1.0";
public string Get()
{
return "test message!!!";
}
}
右键项目属性,找到【包】一项,勾选 “在构建时生成 NuGet” 包。
并根据需要,指定包的一些属性,如包ID、版本等信息。

3.2 生成解决方案
vs2022 的输出窗口输出如下信息:
已还原 D:\_code\testnetcore\Nuget\MessageLib\MessageLib\MessageLib.csproj (用时 3 ms)。
1>------ 已启动全部重新生成: 项目: MessageLib, 配置: Debug Any CPU ------
1>MessageLib -> D:\_code\testnetcore\Nuget\MessageLib\MessageLib\bin\Debug\net6.0\MessageLib.dll
1>已成功创建包“D:\_code\testnetcore\Nuget\MessageLib\MessageLib\bin\Debug\MessageLib.1.0.0.nupkg”。
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
3.3 上传 Nuget 包
Ctrl + ~ 打开开发者 PowerShell,切换目录到上一步生成的包的路径:
cd D:\_code\testnetcore\Nuget\MessageLib\MessageLib\bin\Debug\
然后输入 publish 命令:
注意将命令中的地址改成自己的服务器地址,并且将 NUGET-SERVER-API-KEY 改成 baget.env 配置文件中设置的 ApiKey,包名 MessageLib.1.0.0.nupkg 对应改成自己的包名
dotnet nuget push -s http://localhost:5555/v3/index.json -k NUGET-SERVER-API-KEY MessageLib.1.0.0.nupkg
在网页中,可以看到上传的包:

4 使用自建服务器的 Nuget 包
4.1 修改 VS 配置
在:工具 -> 选项
添加一个新的包源,输入名称和源,点更新,确定

4.2 引入 Nuget 包
在 Nuget 包界面中,选择程序包源为自己刚添加的自建服务器,选择对应的包安装即可。

4.3 命令行引入 Nuget 包
待补充……
参考来源
基于 BaGet 搭建 Nuget 服务器的更多相关文章
- 搭建nuget 服务器
前言 搭建nuget服务器,这是上家公司进行类库管理的方式,其实优点很明显, 1.代码保密 2.代码重复利用效率高,这样不管任何项目只要知道nuget服务器地址就能直接调用 3.可进行版本任意切换提高 ...
- 如何内网搭建NuGet服务器
NuGet 是.NET程序员熟知的给.NET项目自动配置安装library的工具,它可以直接安装开源社区中的各个公用组件,可以说是非常方便.不过,有些时候,公司内部的公用的基础类库,各个项目都有引用, ...
- 【转】如何内网搭建NuGet服务器
原文:http://www.cnblogs.com/zhangweizhong/p/7755332.html NuGet 是.NET程序员熟知的工具,它可以直接安装开源社区中的各个公用组件,可以说是非 ...
- windows环境下基于nginx搭建rtmp服务器
基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...
- 搭建Nuget服务器
1.新建一个web网站应用程序 (最好是ASP.NET空Web应用程序) 2.通过NuGet扩展 引用 NuGet.Server包 引用之后的项目结构为 将此网站部署到IIS上,即可访问,既搭建好了 ...
- 手把手教你搭建nuget服务器
新建web项目 工具:VS2013 版本:.Net Framework 4.6,低版本也行,不过要找到对应版本的Nuget.Server 装了NuGet客户端(百度如何安装) WebForm或MVC都 ...
- 搭建Nuget服务器(Nuget私服)
一.前言 对公司或者对个人来说,经过一段时间的沉淀之后,都会有一些框架或者模块,为了对这些框架或者模块进行更好的管理和维护,也为了方便后面的开发或者其他同事,我们可以在我们本地或者内网搭建一个Nuge ...
- 手把手教你 通过 NuGet.Server 包 搭建nuget服务器,并使用桌面工具上传 nuget 包,免命令行
新建web项目 工具:VS2013 版本:.Net Framework 4.6,低版本也行,不过要找到对应版本的Nuget.Server 装了NuGet客户端(百度如何安装) WebForm或MVC都 ...
- 【腾讯云服务器】基于centos7搭建ftp服务器(vsftpd)
该博客分为三部分设置,1.ftp服务器搭建.2.防火墙设置 3.腾讯云安全组 一.ftp服务器搭建 1.1 安装vsftpd yum install vsftpd -y 1.2 启动vsftpd服 ...
随机推荐
- 高效使用Java构建工具,Maven篇|云效工程师指北
大家好,我是胡晓宇,目前在云效主要负责Flow流水线编排.任务调度与执行引擎相关的工作. 作为一个有多年Java开发测试工具链开发经验的CRUD专家,使用过所有主流的Java构建工具,对于如何高效使用 ...
- DOS、DOS攻击、DDOS攻击、DRDOS攻击
https://baike.baidu.com/item/dos%E6%94%BB%E5%87%BB/3792374?fr=aladdin DOS:中文名称是拒绝服务,一切能引起DOS行为的攻击都被称 ...
- task0002(四)- 练习:数据处理、轮播及交互
转载自我的个人博客 欢迎大家批评指正 包括5部分: 小练习1-处理用户输入 小练习2-日期对象的使用 小练习3:轮播图 小练习4:输入提示框 小练习5:界面拖拽交互 源码地址task0002 在线De ...
- 用 JWT 实现小程序本地用户标识
panda-chat-room 继上节「理解小程序 session」 ,本节我们以 jsonwebtoken 来实现小程序端的用户状态标识.如果你对小程序用户登录流程及 session 管理还有些疑惑 ...
- java中如何能知道应该捕获什么样的异常?举例
我怎么知道应该捕获什么样的异常? 马克-to-win:如上例1.1:开始没加try时,程序崩溃,系统打印的是如下的错误,Exception in thread "main" jav ...
- 【Android开发】【布局】 仿微信UI
Demo地址
- vue里面v-for显示红色波浪线
vue里面使用v-for代码显示红色的波浪线,解决办法: before: <div v-for="tmsgs in msg.message"></div> ...
- Java当中的HashSet
package collection; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /* * ...
- JavaScript学习高级1
Doucment(Dom)文档对象,用户控制html文档中的元素, <span id="span" onclick="fun();">1111& ...
- 2021.12.08 平衡树——FHQ Treap
2021.12.08 平衡树--FHQ Treap http://www.yhzq-blog.cc/fhqtreapzongjie/ https://www.cnblogs.com/zwfymqz/p ...