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

基于 BaGet 搭建 Nuget 服务器的更多相关文章

  1. 搭建nuget 服务器

    前言 搭建nuget服务器,这是上家公司进行类库管理的方式,其实优点很明显, 1.代码保密 2.代码重复利用效率高,这样不管任何项目只要知道nuget服务器地址就能直接调用 3.可进行版本任意切换提高 ...

  2. 如何内网搭建NuGet服务器

    NuGet 是.NET程序员熟知的给.NET项目自动配置安装library的工具,它可以直接安装开源社区中的各个公用组件,可以说是非常方便.不过,有些时候,公司内部的公用的基础类库,各个项目都有引用, ...

  3. 【转】如何内网搭建NuGet服务器

    原文:http://www.cnblogs.com/zhangweizhong/p/7755332.html NuGet 是.NET程序员熟知的工具,它可以直接安装开源社区中的各个公用组件,可以说是非 ...

  4. windows环境下基于nginx搭建rtmp服务器

    基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...

  5. 搭建Nuget服务器

    1.新建一个web网站应用程序 (最好是ASP.NET空Web应用程序) 2.通过NuGet扩展 引用 NuGet.Server包 引用之后的项目结构为 将此网站部署到IIS上,即可访问,既搭建好了 ...

  6. 手把手教你搭建nuget服务器

    新建web项目 工具:VS2013 版本:.Net Framework 4.6,低版本也行,不过要找到对应版本的Nuget.Server 装了NuGet客户端(百度如何安装) WebForm或MVC都 ...

  7. 搭建Nuget服务器(Nuget私服)

    一.前言 对公司或者对个人来说,经过一段时间的沉淀之后,都会有一些框架或者模块,为了对这些框架或者模块进行更好的管理和维护,也为了方便后面的开发或者其他同事,我们可以在我们本地或者内网搭建一个Nuge ...

  8. 手把手教你 通过 NuGet.Server 包 搭建nuget服务器,并使用桌面工具上传 nuget 包,免命令行

    新建web项目 工具:VS2013 版本:.Net Framework 4.6,低版本也行,不过要找到对应版本的Nuget.Server 装了NuGet客户端(百度如何安装) WebForm或MVC都 ...

  9. 【腾讯云服务器】基于centos7搭建ftp服务器(vsftpd)

    该博客分为三部分设置,1.ftp服务器搭建.2.防火墙设置  3.腾讯云安全组 一.ftp服务器搭建 1.1  安装vsftpd yum install vsftpd -y 1.2 启动vsftpd服 ...

随机推荐

  1. 什么是Viewport Meta(width详解)及在手机上的应用

    viewport是专为手机浏览器设计的一个meta标签: 有些屏幕很小有智能手机,但分辩率却可以做得很大,比如小米4的默认分辨率为:1920*1080,比许多电脑桌面的都还大,传统桌面网站直接放到手机 ...

  2. 软件构造实验-百度图像识别api

    识别结果: 识别结果:

  3. Java中的反射以及简单运用(原理+例子)

    Java反射 学习内容 1. 为什么要使用反射 2. 反射的概念 3. Java反射加载过程 4. 字节码对象理解 5. 获取字节码对象(.class)的三种方式 6. 反射常用API 8. 反射综合 ...

  4. EMS邮箱数据库全局监控设置

    案例任务:监控TestDB01邮箱数据库的所有邮件,监控邮箱为用户"王淑江"的邮箱. 1.EMS全局监控设置 使用PowerShell完成操作:"王淑江"监控T ...

  5. ThinkCMF[仿骑呗共享单车官网]

    学习Thinkcmf内容管理系统(Thinkphp3.2.3框架)时候,用来练手的,简单的模仿骑呗官网首页,并对后台管理做了点小修改. 安装: 下载地址:https://pan.baidu.com/s ...

  6. 【c++】容器的基本操作

    操作\容器 vector list string set stack queue map 插入 push_bcak().insert() push_back() .push_front().inser ...

  7. Springcloud报错:java.lang.IllegalStateException: Service id not legal hostname (/a-service)

    今天在做springcloud链路追踪的时候,报错java.lang.IllegalStateException: Service id not legal hostname (/a-service) ...

  8. python---用顺序表实现队列

    class Queue(object): """队列""" def __init__(self): self.__list = [] def ...

  9. 微信小程序实战,用vue3实现每日浪漫情话推荐~

    之前做了个恋爱话术微信小程序,实现高情商的恋爱聊天. 但最近突然发现,每天早上给女朋友发一段优美情话可以让她开心一整天,但无奈自己的语言水平确实有限,不能随手拈来,着实让人有点不爽. 不过办法总比困难 ...

  10. 【LeetCode】76. 最小覆盖子串

    76. 最小覆盖子串 知识点:字符串:滑动窗口 题目描述 给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ...