前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nuget服务器搭建,以及如何发布一个Nuget包

nuget服务器搭建,以及如何发布一个Nuget包

作者头像
sam dragon
发布2018-01-17 11:29:40
4.3K0
发布2018-01-17 11:29:40
举报
文章被收录于专栏:cnblogscnblogs

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

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

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

1. 下载nuget.exe

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

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

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

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

  • 运行 dotnet pack即可对当前项目打包,必须在当前项目文件夹中支持(还有.csproj文件的目录)
  • 对项目进行版本行,可以配置.csprojc文件,如下所示:
代码语言:javascript
复制
<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文件会根据版本重新创建一个:

image
image

1.3 配置nuget源

1. 本地文件包的方式

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

image
image

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

2. 配置自己服务器的源
image
image

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

1.4 使用

引入界面如下:

image
image

二、在linux上搭建nuget.server

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

2.1. 运行docker镜像

代码语言:javascript
复制
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是不能打包的)
代码语言:javascript
复制
dotnet new classlib -n Nu.Common
  • 打包 进入到项目根目录,也就是包含.csproj文件的目录
代码语言:javascript
复制
dotnet pack

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

image
image
  • 发布包 必须进入到.nupkg包所在位置
代码语言:javascript
复制
..\..\nuget.exe push -Source http://localhost:8080 -ApiKey ee28314c-f7fe-2550-bd77-e09eda3d0119 Nu.Common.1.0.0.nupkg
image
image

2.3. 引用包

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

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

image
image

三、在windows上搭建

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

3.1  搭建项目

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

节点名

说明

apiKey

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

packagesPath

nuget.server中的包存放路径

配置节点都在appSettings节点下

3.2  运行此项目

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

四、常用命令

命令

说明

示例

push

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

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

delete

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

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

list

查看服务器上有那些nuget 包

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

当然dotnet 也是一样的

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、本地dll如何打包,以及版本的更新
    • 1.1 利用nuget.exe进行打包(应用于.net framework)
      • 3. 注意
    • 1.2 使用dotnet 进行打包(应用于.net core )
      • 1.3 配置nuget源
        • 1. 本地文件包的方式
        • 2. 配置自己服务器的源
      • 1.4 使用
      • 二、在linux上搭建nuget.server
        • 2.1. 运行docker镜像
          • 2.2 创建一项目打包和发布
            • 2.3. 引用包
            • 三、在windows上搭建
              • 3.1  搭建项目
                • 3.2  运行此项目
                • 四、常用命令
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档