使用BaGet 搭建私有nuget 服务器

netNugetBaGet

引言

为了增强代码的安全性和企业团队开发的高效性,搭建私有的package 包管理服务器是很有必要的,搭建私有的类库管理服务有以下优点:

  • 实现关键性代码保密
  • 提供代码利用率
  • 实现代码不同版本管理

使用BaGet 搭建本地私有nuget 服务器

BaGet 是GitHub上开源的一个项目,是一个轻量级NuGet和符号服务器,查看详情

具体实现过程如下:

1.下载最新release 版本
  1. 在github 中下载最新的release版本,点击下载

  2. 解压文件,修改appsetting.json 配置文件

    具体配置操作可参考官方文档

    为了能够从nuget 库中获取其他的包文件,需要配置使用官放镜像。
{
... "Mirror": {
"Enabled": true,
"PackageSource": "https://api.nuget.org/v3/index.json"
},
...
}

需要API Key 的可以配置自己的API Key,我是搭建简单的测试版本,所有就没有配置

"ApiKey": "oy2bgb2qfcnbd3hpge2a2qp3t5ud7khezf7zbyqhurg64u"

3.启动BaGet服务

启动服务的前提是要安装.NetCore SDK

在BaGet文件目录下执行:

dotnet BaGet.dll

打开浏览器,运行http://localhost:5000 即可看到nuget 服务已启动

2.生成.nupkg 包文件

为了测试本地nuget 服务器是否可用,在vs中新建一个测试项目,以下简单的代码。

namespace Easten.Core
{
public class Handler
{
public string Name { get; set; }
public bool IsLock { get; set; }
public void GetValue(int abc,out object value)
{
value=abc * 10.3;
}
}
}

使用nuget 命令打包可执行文件

1.使用nuget 命令之前需要安装nuget.exe,点击安装,安装完成之后在系统变量中进行配置才可通过命令调用。

2.验证nuget 有无安装和配置成功,可打开cmd 或者powershell输入 nuget

C:\Windows\System32>nuget
NuGet Version: 5.0.2.5988

3.将需要打包的测试项目编译成功后,在项目.csproj目录中打开cmd 或者powershell 并执行:nuget spec

PS F:\个人\开发\技术\Nuget\NugetTest\Easten.Core> nuget spec
已成功创建“Easten.Core.nuspec”。

4.用文本编辑器将上述命令执行完成的.nuspec 文件进行编辑。

<?xml version="1.0"?>
<package >
<metadata>
<id>Dongteng</id>
<version>1.0.0</version>
<title>ceshiceshi</title>
<authors>Dongteng</authors>
<owners>$author$</owners>
<licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
<projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
<iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>dongteng test</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2019</copyright>
<tags>Tag1 Tag2</tags>
</metadata>
</package>

根据实际的需求修改,一般修改id、version、authors、description等

5.修改完以上信息后执行命令:nuget pack,进行打包.正常结果如下

PS F:\个人\开发\技术\Nuget\NugetTest\Easten.Core> nuget pack
正在尝试从“Easten.Core.csproj”生成程序包。
MSBuild auto-detection: using msbuild version '16.200.19.32702' from 'D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\bin'.
正在打包“F:\个人\开发\技术\Nuget\NugetTest\Easten.Core\bin\Debug”中的文件。
正在对元数据使用“Easten.Core.nuspec”。
Successfully created package 'F:\个人\开发\技术\Nuget\NugetTest\Easten.Core\Dongteng.1.0.0.nupkg'.
3.发布.nupkg 包,并在项目中恢复使用

1.运行命令行,将包文件推送到本地nuget服务器中,执行命令:(如果设置了Key,则需要在包名之前添加对应的ApiKey)

dotnet nuget push -s http://localhost:5000/v3/index.json Dongteng.1.0.0.nupkg

2.提示推送成功之后在浏览器中刷新服务,查看推动的内容。

3.在vs 中新建项目,打开nuget 程序包管理控制台,在配置程序包源,指向:http://localhost:5000/v3/index.json



4.在控制台中执行包安装,即安装完成。

PM> Install-Package Dongteng -Version 1.0.0

5.编写测试代码,执行调用

class Program
{
static void Main(string[] args)
{
var a = new Easten.Core.Handler();
a.GetValue(222, out var ss);
}
}

通过以上步骤即可完成基础的本地Nuget 服务的搭建及package 包的发布于安装,比较简单。

知识拓展 ,使用NuGet Package Explorer 打包工具对需要发布的程序包执行打包处理

具体操作可参考文档:

1.https://blog.csdn.net/u011523479/article/details/82012340

2.https://www.cnblogs.com/xieyang07/p/10193283.html

使用BaGet 搭建私有nuget 服务器的更多相关文章

  1. 搭建私有 Nuget 服务器教程(1)

    对于 .NET 开发者来说,nuget 是必不可少的程序包管理工具.相应地,大部分开发团队都需要在内部搭建 Nuget 服务器,以管理私有 nupkg 包.本教程所使用的 Nuget 服务器,不是微软 ...

  2. NET Core:搭建私有Nuget服务器以及打包发布Nuget包

    docker 安装 https://www.cnblogs.com/liuxiaoji/p/11014329.html 1.使用docker搭建私有Nuget服务器 docker run -d -p ...

  3. 使用 baget 搭建私有 nuget 私有服务

    现在几乎所有语言都提供包管理工具,比如 JavaScript 的 npm ,Java 的 Maven ,Dart 的 pub ..Net 程序当然是 NuGet .NuGet 也出现很多年了,奇怪的是 ...

  4. 十分钟搭建自己的私有NuGet服务器-BaGet

    目录 前言 开始 搭建BaGet 上传程序包 在vs中使用 其他 最后 前言 NuGet是用于微软.NET(包括 .NET Core)开发平台的软件包管理器.NuGet能够令你在项目中添加.移除和更新 ...

  5. linux下安装EJBCA 搭建私有CA服务器

    linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1.  linux mint18.3 62位: ...

  6. 利用阿里云搭建私有Git服务器

    服务器系统:Centos 6 (查看centos版本命令:lsb_release -a) 客户端系统:Windows 7 一.服务器端安装Git ==通常centos上使用yum源安装的git版本过低 ...

  7. 搭建私有Nuget仓库

    使用Nexus搭建私有Nuget仓库 https://www.cnblogs.com/Erik_Xu/p/9211471.html 前言 Nuget是ASP .NET Gallery的一员,是免费.开 ...

  8. [开发笔记usbTOcan]用树莓派搭建私有Git服务器

    0 | 思路 在开始编程前,先创建一个版本管理库,以前一直用SVN,但目前用Git的还是比较,正好利用这个机会学习GIt. 想过使用Github提供的免费服务器,但项目目前还没有做开源的准备,于是就有 ...

  9. 搭建本地Nuget服务器并使用NuGet Package Explorer工具打包nuget包

    1.什么是Nuget: 百度百科描述: Nuget是 ASP .NET Gallery 的一员.NuGet 是免费.开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库. ...

随机推荐

  1. 移动端 1px 像素边框问题的解决方案(Border.css)

    前言 关于什么是移动端1像素边框问题,先上两张图,大家就明白了. 解决方案 将以下代码放在border.css文件中,然后引入 常用className border:整个盒子都有边框 border-t ...

  2. xz格式解压

    1.安装xz命令 yum install xz -y 2.将xz文件解压为tar文件 xz -d example.tar.xz 3.将tar文件解压 tar xf example.tar 如果无法安装 ...

  3. oracle row_number() over(partition by .. order by ..)和rank() over(partition by .. order by ..) 和dense_rank() over(partition by .. order by ..)的相似点与区别

    新建一个测试表 create table dim_ia_test2(device_number varchar2(20),desc2 varchar2(20)) 插入数据后得到: 一.oracle r ...

  4. Ubuntu设置终端操作行为的回收站

    Ubuntu设置终端操作行为的回收站(默认情况下,在终端删除文件,会直接删除) 参考自:https://help.aliyun.com/knowledge_detail/41359.html?spm= ...

  5. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  6. runloop是一个系统架构、是一个系统

    信号与系统的系统: 事件源.派发系统.事件传播链.事件处理函数: 等组成的整体: 强调的重点是联系与结合.

  7. 洛谷 P4158 [SCOI2009]粉刷匠 题解

    每日一题 day59 打卡 Analysis 很容易看出是一个dp, dp[i][j[k][0/1]来表示到了(i,j)时,刷了k次,0表示这个没刷,1表示刷了. 于是有转移: 1.换行时一定要重新刷 ...

  8. Problem 3 基站建设 (station.cpp)———2019.10.6

    在此郑重的感激wxyww大佬 wxyww tql [题目描述]小 Z 的爸爸是一位通信工程师,他所在的通信公司最近接到了一个新的通信工程建设任务,他们需要在 C 城建设一批新的基站.C 城的城市规划做 ...

  9. GoCN每日新闻(2019-11-09)

    GoCN每日新闻(2019-11-09) 1. Go语言发行10周年庆祝 https://blog.golang.org/10years2. 容器中某Go服务GC停顿经常超过100ms排查 https ...

  10. SpringBoot之文件上传体积过大问题(解决方案)

    错误信息如下(关键): org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the re ...