zoukankan      html  css  js  c++  java
  • nuget服务器搭建,以及如何发布一个Nuget包

    一、本地dll如何打包,以及版本的更新

    本小节主要介绍两种方式将本地dll打包为Nuget包,

    1.1 利用nuget.exe进行打包(应用于.net framework)

    1. 下载nuget.exe

    nuget.exe下载地址:https://www.nuget.org/downloads。 下载完成后,不需要安装。请将nuget.exe复制到需要打包的项目文件夹中

    2. 打包成.nupkg包
    • 首先运行. uget sepc 生成.nuspec配置文件,用于nuget的配置项
    • 然后运行. uget pack packageName 发布成nuget包

    3. 注意

    此类库更新版本之后,再打包成.nuget文件,是不会重新生成.nuspec文件。

    1.2 使用dotnet 进行打包(应用于.net core )

    • 运行 dotnet pack即可对当前项目打包,必须在当前项目文件夹中支持(还有.csproj文件的目录)
    • 对项目进行版本行,可以配置.csprojc文件,如下所示:
    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
        <Version>1.0.1.1</Version>
        <AssemblyVersion>1.2.0.0</AssemblyVersion>
        <FileVersion>1.3.0.0</FileVersion>
      </PropertyGroup>
    </Project>

    此处需要注意的时候,默认创建的dll是没Version, AssemblyVersion, FileVersion节点,需要自己手动添加;以及在更新版本后 .nuspec文件会根据版本重新创建一个:

    1.3 配置nuget源

    1. 本地文件包的方式

    配置本地Nuget源。在工具 nuget包管理器 -> 程序包源,做如下配置

    然后把发布的.nupkg包放在此文件夹即可

    2. 配置自己服务器的源

    注意,如果用的是linux版本,测源地址中不需要加nuget子目录。

    1.4 使用

    引入界面如下:

    二、在linux上搭建nuget.server

    本小节介绍如何使用docker来搭建属于自己的Nuget仓库

    2.1. 运行docker镜像

    docker run -d  -p 8080:80 -v $PWD/nuget/db:/var/www/db -v $PWD/nuget/packages:/var/www/packagefiles  -e NUGET_API_KEY=ee28314c-f7fe-2550-bd77-e09eda3d0119  sunside/simple-nuget-server

    -v nuget:当前目录下nuget文件夹映射为 nuget-server的包,其中要有packages文件夹。他也有映射 nuget_api_key:表示此Nuget仓库的索引Key。push的要用的

    2.2 创建一项目打包和发布

    • 创建一个 classlib 库文件(web,或者webapi是不能打包的)
    dotnet new classlib -n Nu.Common
    • 打包 进入到项目根目录,也就是包含.csproj文件的目录
    dotnet pack

    命令成功后,会在bin/Debug目录下创建.nupkg文件

    • 发布包 必须进入到.nupkg包所在位置
    ....
    uget.exe push -Source http://localhost:8080 -ApiKey ee28314c-f7fe-2550-bd77-e09eda3d0119 Nu.Common.1.0.0.nupkg

    2.3. 引用包

    • 在vs中的引用
    • 在vscode中的引用 配置nuget.config配置文件
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
     <packageSources> 
        <add key="mySource" value="http://localhost:8080" />
     </packageSources>
    </configuration>

    然后运行dotnet add package Nu.Common(包名)即可.

    三、在windows上搭建

    此方式更为简单,因为nuget上有现在的nuget.server这包,就是用于做这件事情的。步骤如下(此nuget包不支持.net core版本):

    3.1  搭建项目

    • 引入nuget.server这个nuget包
    • 更改配置

    节点名

    说明

    apiKey

    nuget.server的密钥配置,用于Push和delete包

    packagesPath

    nuget.server中的包存放路径

    配置节点都在appSettings节点下

    3.2  运行此项目

    • 解决一个错误,如果在运行时提示如下错误,请按照提示删除相应的节点
    • 运行成功
    • 发布和移除包 因为Nuget的客户端只有一个,可以参考docker搭建章节的push和delele

    四、常用命令

    命令

    说明

    示例

    push

    发布一个包到nuget.server,包名 apikey, -Source是必须的

    . uget.exe push .ClassLibrary1.1.2.0.nupkg samlong -Source http://localhost:56546/nuget

    delete

    从指定 -Source上移除一个包,必须指定版本

    .... uget.exe delete Nu.Common 1.0.0 samlong -Source http://localhost:56981/nuget

    list

    查看服务器上有那些nuget 包

    . uget.exe list -Source http://localhost:56546/nuget

    当然dotnet 也是一样的

    ***********转载:https://cloud.tencent.com/developer/article/1021829

  • 相关阅读:
    导入导出
    封装本地文件路径
    读书书单
    Spring源码阅读-BeanFactory体系结构分析
    Spring源码阅读-ApplicationContext体系结构分析
    Spring源码阅读-IoC容器解析
    Spring源码阅读环境搭建
    【spring实战第五版遇到的坑】第14章spring.cloud.config.uri和token配置项无效
    【spring实战第五版遇到的坑】4.2.3中LDAP内嵌服务器不启动的问题
    【spring实战第五版遇到的坑】3.2中配置关系映射时,表名和3.1中不一样
  • 原文地址:https://www.cnblogs.com/linybo/p/10091072.html
Copyright © 2011-2022 走看看