基于 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服 ...
随机推荐
- ECMAScript中有两种属性:数据属性和访问器属性。
ECMA-262定义这些特性是为了实现JavaScript引擎用的,因此在JavaScript中不能直接访问它们.为了表示特性是内部值,该规范把它们放在了两对儿方括号中,例如 [[Enumerable ...
- [ Skill ] map mapc mapcan mapcar mapcon maplist mapinto
https://www.cnblogs.com/yeungchie/ 几种 map 函数的差异 map map( lambda(( a b ) println( list( a b )) ) list ...
- iOS开发 将html 富文本文字 转换成oc 的富文本
- (NSMutableAttributedString *)mf_htmlAttribute:(NSString *)htmlString{ htmlString = [NSString strin ...
- phpstorm配置xdebug 3.0最新教程!!!配置不成功的快看!
前言 之前2月份就开始配置xdebug,始终没有成功. 今天看到一篇写得挺详细的文章,心血来潮又折腾了下,可惜没成功. 验证始终说我配置错误 后面去阅读官方的文档,修改了些配置,居然搞成功了!! ni ...
- python——如何import包目录
文件位置 文件所在位置包括 , 源根目录的位置 该文件位置(也可以叫相对位置). 导入包的时候会从文件位置进行查找,并导入. 导入包 1. 什么是包? pycharm中包的图片 其中文件夹上有个圆点的 ...
- webpack打包学习
从上图我们可以看出,webpack 可以将多种静态资源 js.css.sass文件等转换成一个静态文件,以此可以减少页面的请求,从而提高浏览器响应速度 1.安装开发依赖包 npm install we ...
- 好用的表单验证工具 vuelidate
Vue validation(表单验证)--vuelidate 表单是用户那里收集的数据的工具.如果它没有收集到你需要的数据,或者收集到的数据不对,那么你的表单就没有达到它的目的.这就是为什么我们需要 ...
- go源码阅读 - sync/rwmutex
相比于Mutex来说,RWMutex锁的粒度更细,使用RWMutex可以并发读,但是不能并发读写,或者写写. 1. sync.RWMutex的结构 type RWMutex struct { // 互 ...
- Blazor 组件库 BootstrapBlazor中 Ajax 组件的使用
组件解决的问题 由于Blazor在与服务器连接时使用了Websocket,仅在第一次连接时会走原MVC的连接逻辑.所以,我们无法在这个过程中完成例如身份认证.cookie处理等操作. 此组件即为解决此 ...
- JQuery学习基础
## 今日内容 1. JQuery 基础: 1. 概念 2. 快速入门 3. JQuery对象和JS对象区别与转换 4. 选择器 ...