zoukankan      html  css  js  c++  java
  • 使用BaGet 搭建私有nuget 服务器

    使用BaGet 搭建私有nuget 服务器

    引言

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

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

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

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

    具体实现过程如下:

    1.下载最新release 版本
    1. 在github 中下载最新的release版本,点击下载
      enter description here
    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 服务已启动
    enter description here

    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:WindowsSystem32>nuget
    NuGet Version: 5.0.2.5988

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

    PS F:个人开发技术NugetNugetTestEasten.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:个人开发技术NugetNugetTestEasten.Core> nuget pack
    正在尝试从“Easten.Core.csproj”生成程序包。
    MSBuild auto-detection: using msbuild version '16.200.19.32702' from 'D:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentin'.
    正在打包“F:个人开发技术NugetNugetTestEasten.CoreinDebug”中的文件。
    正在对元数据使用“Easten.Core.nuspec”。
    Successfully created package 'F:个人开发技术NugetNugetTestEasten.CoreDongteng.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

  • 相关阅读:
    C# 实现 Aop [Emit动态生成代理类方式]
    分享一些最近在看的电子书
    Can't connect to your phone. Disconnect it, restart it, then try connecting again
    07,Windows Phone后台代理
    .NET 性能测试工具 性能计数器
    windows 8 metro 开发学习资源链接
    08,Windows Phone 本地存储
    06,Windows Phone 8程序的生命周期
    .NET 性能测试工具 事件跟踪器(ETW)
    LitJSONjson 和net 的完美组合用法
  • 原文地址:https://www.cnblogs.com/dongteng/p/11550871.html
Copyright © 2011-2022 走看看