什么是nuget

适用于任何现代开发平台的基本工具可充当一种机制,通过这种机制,开发人员可以创建、共享和使用有用的代码。 通常,此类代码捆绑到“包”中,其中包含编译的代码(如 DLL)以及在使用这些包的项目中所需的其他内容。

对于 .NET(包括 .NET Core),共享代码的 Microsoft 支持的机制则为 NuGet ,其定义如何创建、托管和使用面向 .NET 的包,并针对每个角色提供适用工具。

简单来说,NuGet 包是具有 .nupkg 扩展的单个 ZIP 文件,此扩展包含编译代码 (Dll)、与该代码相关的其他文件以及描述性清单(包含包版本号等信息)。 使用代码的开发人员共享创建包,并将其发布到公用或专用主机。 包使用者从适合的主机获取这些包,将它们添加到项目,然后在其项目代码中调用包的功能。 随后,NuGet 自身负责处理所有中间详细信息。

由于 NuGet 支持公用 nuget.org 主机旁边的专用主机,因此,可以使用 NuGet 包来共享组织或工作组专用的代码。 此外,你还可以使用 NuGet 包作为一种便捷的方式,将自己的代码用于除你自己项目之外的任何其他项目。 简而言之,NuGet 包是可共享的代码单元,但不需要暗示任何特定的共享方式。

使用 vs2017 创建 NuGet 包

创建类库项目

写一个示例类

using System;namespace nugetpackdemo
{public class Sample{public string HellowNuget(){return "HellowNuget";}}
}

配置包属性

  1. 在解决方案资源管理器中右键单击该项目,然后选择“属性” 菜单命令,然后选择“包” 选项卡。

  1. 为包提供一个唯一标识符,并填写任何其他所需的属性。
    对于面向公共使用而生成的包,请特别注意 Tags 属性,因为这些标记可帮助其他人查找包并了解其用途。

运行 pack 命令

  1. 将此配置设置为“发布” 。
  2. 请在“解决方案资源管理器”中右键单击该项目,然后选择“Pack”命令:

(可选)在生成期间生成包

可以将 Visual Studio 配置为在生成项目时自动生成 NuGet 包。

  1. 在“解决方案资源管理器”中,右键单击项目,然后选择“属性” 。

  2. 在“包”选项卡中,选择“在生成期间生成 NuGet 包” 。

    注意
    自动生成包时,打包时间会增加项目的生成时间。

发布包

有了 .nupkg 文件后,可以使用 nuget.exe CLI 或 dotnet.exe CLI 以及从 nuget.org 获取的 API 密钥将其发布到 nuget.org。

  1. 登录你的 nuget.org 帐户,或创建一个帐户(如果你还没有帐户)。

  2. 选择用户名(在右上角),然后选择“API 密钥”。

  3. 选择“创建” ,提供密钥名称,选择“选择范围”>“推送” 。 输入“Glob 模式” *,然后选择“创建” 。 (请参阅下面有关范围的详细信息。)

  4. 创建密钥后,选择“复制”,检索需要在 CLI 中使用的访问密钥 :

使用 dotnet CLI 发布

在发布包之前,必须先打开命令行。

  1. 更改到包含 .nupkg 文件的文件夹。
cd bin\Release
  1. 运行以下命令,指定包名称(唯一包 ID)并使用你的 API 密钥替换密钥值:
dotnet nuget push sandsnugetpackdemo.1.0.0.nupkg -k {{API秘钥}} -s https://api.nuget.org/v3/index.json
  1. dotnet 会显示发布过程的结果:

管理发布的包

登录 https://www.nuget.org/ 查看自己上传的包就可以了

转载于:https://www.cnblogs.com/sands/p/11460302.html

Nuget打包类库及引用相关推荐

  1. .NET Core 系列5 :使用 Nuget打包类库

    NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...

  2. nuget打包文件丢失如何使用powershell脚本解决

    本文介绍的是在使用nuget打包的过程中遇到丢失文件的问题的时候使用powershell脚本实现的解决办法,非常的巧妙 对于进行nuget打包时,有时我们需要添加一个配置文件,就是一些文本文件,而这些 ...

  3. 在web项目中的类库中引用webservice 在部署后更改webservice路径的方法

    在一次开发过程中发现这样的问题: 我引用外部的webservice连接并不是在solution里面的web层,而是在solution里面的类库中引用的,原本在web中引用自动生成的引用路径会在web. ...

  4. 使用nuget 打包并上传 nuget.org

    使用nuget 打包并上传 nuget.org 一.准备工作 二.打包你的项目 三.上传 nug.org 服务器 前言:今天又玩了个新东西,那就是 使用nuget 打包并上传 nuget.org,在这 ...

  5. vue3 项目修改打包后的引用路径,调整图片压缩成base64的门槛

    vue3 项目修改打包后的引用路径,调整图片压缩成base64的门槛 前言 解决 完事 前言 最近的项目中需要在程序中显示一个H5页面,所以按照官方VUE CLI的教程创建了一个项目开始整.整到最后打 ...

  6. NuGet 发布类库,依赖项的问题

    最近在做新生入学的项目时,遇到nuget包发布的问题,因为权限系统,评教系统都会用到我们的WCF和Contract层的类库,使用nuget将包发布到网上,大家会自行下载. 但是在发布的过程中遇到了难题 ...

  7. .NetCore 打包发布及引用

    今天刚开始接触.netcore,现场同事让我将sdk打个包发给他,捣鼓了一阵,出来一个大概的流程,马上记录下来,分享一下.如果有不对的或者可以优化的操作,请留言指正. 1.设置版本号(第一次发布,默认 ...

  8. vite打包类库的时候,总包和子包区分打包,怎么打包出来的都是总包的内容

    需求 作者想打包一个组件库,输出可按需加载的总包的同时,并希望将每个组件进行打包输出,这样的话 1.可以批量或按需引用总包 2.也可以引用个别组件,无需引用总包,使得每个组件都可以单独运行,独立使用. ...

  9. 类库dll引用不成功问题

    警告:未能解析引用的程序集"*******, Version=1.0.0.0, Culture=neutral,",因为它对不在当前目标框架".NETFramework, ...

最新文章

  1. 对RESTful Web API的理解与设计思路
  2. php工具箱mysql停止进程_PHP进程卡死和MySQL超时时间的设置方法
  3. 超酷的 mip-infinitescroll 无限滚动(无限下拉)
  4. 计算机 大文件查找,win7笔记本电脑如何快速查找大文件
  5. 国图软件无法生成地籍调查表
  6. AI方向的实验室调研(截至18年,未更新)
  7. 我的世界java太卡了怎么办_我的世界服务器太卡怎么办 MC服务器优化攻略
  8. 怎样注册一个codepen账号
  9. 将 EBS R12.1.1 升级到 R12.1.3
  10. 罗格斯大学计算机信息工程专业排名,罗格斯大学硕士统计学专业排名?这一些重点迟早得掌握...
  11. 我丈母娘家的小店竟然被Dos攻击了
  12. 使用office这么多年,但知道什么是office365吗?
  13. sklearn机器学习:岭回归Ridge
  14. 分分钟带你学会DNS、WEB、DHCP服务器的搭建
  15. 结束语-放弃完美主义,执行力就是限时限量认真完成
  16. 台式计算机用u盘给电脑安装系统,如何在台式计算机上用U盘重新安装Win7系统
  17. 贪吃蛇大作战:C语言代码
  18. 【读者群答疑】使用xlwings编程进行调试时会在后台留下若干Excel进程,如何解决?
  19. 免费大学生简历模板下载,500套精美大学生个人简历模板下载(求职、考研)
  20. 关于touch事件的使用 (touchStart touchMove touchEnd(不触发 android 4.0以上)) 滑动的使用

热门文章

  1. 【JavaSE04】Java中循环语句for,while,do···while-思维导图
  2. Elastic Stack简介和Elasticsearch基本介绍
  3. 工厂方法模式(Factory Method)简介
  4. matlab双重for训话,Question 2:
  5. 学习java的步骤_java学习的基本步骤
  6. bat命令 修改ini文件内容_Linux文件内容查看相关命令
  7. ajax连mysql数据库_AJAX调用mysql数据库简单例子
  8. EDAS 4.0 助力企业一站式实现微服务架构转型与 K8s 容器化升级
  9. Aliyun Java Initializr 和 Spring 官方的到底有什么区别?
  10. AWS re:Invent 2019 召开 | 云原生生态周报 Vol. 30