一文了解Nuget的使用

Nuget介绍

官网定义:NuGet是.NET的软件包管理器(免费)。NuGet客户端工具提供了生成和使用软件包的能力。NuGet Gallery 是所有软件包作者和消费者都使用的中央软件包存储库。

简单来说,nuget包解决了dll引用的问题,开发者可以通过打包,然后发布到公有主机或者私有主机上,供其他开发者使用。可以大大的提高创建一个.NET应用的效率。

想了解平时安装的nuget包,是如何产生的。需要了解几个角色。

  • 创建者:包的作者,创建一个项目,最终生成一个后缀名为.nupkg的文件,里面包含了编译代码DLL、与该代码相关的其他文件以及描述清单如版本等信息。

  • Host 主机:nuget.org 作为公共主机,如果你也想发布一个包,供所有开发者使用的话,可以选择它。NuGet 自身负责在 nuget.org 中维护包含 100,000 多个唯一包的中央存储库。这些包每天供数以百万的 .NET/.Net Core 开发人员使用。私有主机上,比如团队内部几个人可以访问。

  • 消费者:很好理解,就是我们从nuget获取包的开发者。

简单的总结下这几个角色的关系:创建者创建一个nuget包,并发布到主机上。然后使用者在可访问的主机上搜索安装nuget包到项目中,这样项目就可以利用包提供的功能。如图

工具的选择

 目前提供的工具还是挺丰富的,下文使用dotnet CLI ,你也可以选择任意你习惯的工具

打包

准备工作,创建一个类库并命名为AA.Nlog。

 1.配置包元数据 ,右键项目-》属性

在.csproj文件中,我们发现添加了一下属性:

  <PropertyGroup><TargetFrameworks>net452;netstandard2.0</TargetFrameworks><Description>支持 NLog</Description><PackageProjectUrl>https://github.com/ChengLab/AAFrameWork</PackageProjectUrl><RepositoryType>git</RepositoryType><PackageTags>NLog</PackageTags><RepositoryUrl>https://github.com/ChengLab/AAFrameWork</RepositoryUrl><GeneratePackageOnBuild>false</GeneratePackageOnBuild></PropertyGroup>

如果勾选了在版本中生成Nuget包选项框,则生成项目时会自动生成nuget包;包ID:是唯一的标识,用户搜索和使用就是通过包ID。包版本:会自动根据程序集版本生成,如果要更新包,只需要把版本号改大点即可。其他信息可以自行填写。

2.从项目中 生成nuget包(.nupkg文件),运行pack命令如下:

dotnet pack

nuget包已经生成了,什么是nupkg文件?.nuspec文件是包含程序包元数据的XML清单。此清单可用于构建包装并向消费者提供信息。清单始终包含在包装中。可以在微软文档中(https://docs.microsoft.com/en-us/nuget/reference/nuspec)找到有关nuspec的更多详细信息

发布包到公共Host

创建 API 密钥
  1. 登录你的 nuget.org 帐户,或创建一个帐户(如果你还没有帐户)。有关创建帐户的详细信息,请参阅个人帐户。

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

  3. 选择“创建” ,提供密钥名称,选择“选择范围”>“推送” 。输入“Glob 模式” *,然后选择“创建” 。

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

使用dotnet CLI 发布nuget包
  • 运行命令,指定包名称(唯一包 ID)并使用你的 API 密钥替换密钥值:

dotnet nuget push  AA.NLog.1.0.0.nupkg -k qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 -s https://api.nuget.org/v3/index.json
  • 发布过程结果

info : 正在将 AA.NLog.1.0.0.nupkg 推送到 'https://www.nuget.org/api/v2/package'...
info :   PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/deprecateLicenseUrl.
info :   Created https://www.nuget.org/api/v2/package/ 2854 毫秒
info : 已推送包。

这里  -k 代表API密钥,  -s 代表源。在我们的例子中,源是nuget.org

我们登录到nuget.org查看我们的软件包:

可以进行管理,发布之后,稍等几分钟会在nuget.org中进行搜索到

在vs中浏览我们的nuget软件包

管理nuget程序包->搜索我们刚发布的软件包,AA.Nlog。

如上图所示,该软件包已经可以使用。

希望这篇文章可以对你有所帮助!

参考:https://docs.microsoft.com/zh-cn/nuget/what-is-nuget

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET 应用程序支持直接调用 WebAssembly 模块

WebAssembly Runtime 现已添加 .NET Core API&#xff0c;开发者可直接在 .NET 应用程序中调用 WebAssembly 模块。Mozilla 宣布由 Bytecode Alliance 创建的 Wasmtime&#xff08;WebAssembly runtime&#xff09;现已添加处于早期预览版状态的 .NET Core API&#xff0c;这就…

《RPA、AI、.NET Core 与未来》-中国.NET开发者峰会

未 来第四次工业革命&#xff0c;催生了数字自动化劳动&#xff0c;RPA 与 AI 技术的融合&#xff0c;成为智能信息社会的重要环节。当下RPA平台主要采用.NET Framework框架&#xff0c;也限制了 RPA 只用于 Windows 平台。.NET Core 的开放与跨平台特性赋予RPA更大发展空间。…

浅议gRPC的数据传输机制和回调机制

本文来自DotNET技术圈作者&#xff1a;溪源一、引子如您所知&#xff0c;gRPC是目前比较常见的rpc框架&#xff0c;可以方便的作为服务与服务之间的通信基础设施&#xff0c;为构建微服务体系提供非常强有力的支持。而基于.NET Core的gRPC.NET 组件截至2019年11月30日的最新版本…

如何在 Visual Studio 2019 中连接中国版 Azure

点击上方蓝字关注“汪宇杰博客”导语做国内项目很可能用到中国版的 Azure&#xff0c;即世纪互联运营的 azure.cn。然而 Visual Studio 2019 默认连接的是国际版的 Azure&#xff0c;如何添加中国版订阅呢&#xff1f;差点9966年前我曾经写过一篇《图解&#xff1a;如何在Visua…

k8s 使用 Init Container 确保依赖的服务已经启动

k8s 使用 Init Container 确保依赖的服务已经启动Intro最近 helm 3 正式发布了&#xff0c;dotnetcore 3.1 也正式发布了&#xff0c;最近打算把我的活动室预约项目做一个升级&#xff0c;项目已经升级到了 dotnetcore 3.1&#xff0c;最近几天则在准备把项目打包一个 helm 包&…

dotNET面试题汇总系列连载(1):基础语法

点击上方“dotNET全栈开发”&#xff0c;“设为星标”加“星标★”&#xff0c;每天11.50&#xff0c;好文必达全文约4000字&#xff0c;预计阅读时间8分钟马上要到2020年了&#xff0c;这里整理一个.NET 工程师面试题系列&#xff0c;希望年底或者明年金三银四跳槽的程序猿们带…

Blazor 版 Bootstrap Admin 通用后台权限管理框架

前言上一篇介绍过了前后台分离的 NET Core 通用权限管理系统 在这篇文章简要的介绍了 Bootstrap Admin 后台管理框架的一些功能。本篇文章带来的是微软最新出的 Blazor 版本的 NET Core 通用权限管理系统Blazor 简介至于 Blazor 是什么&#xff0c;Blazor 的优缺点小伙伴们可以…

xms跨平台基础框架 - 基于.netcore

背景鄙人经过多年开发&#xff0c;数百个项目“打磨(折磨)”&#xff0c;各种国内外框架平台都有涉及&#xff0c;没有一款称心顺手的&#xff0c;原因有三&#xff0c;一是设计反人类&#xff0c;二是不开源根本无法突破框架限制&#xff0c;三是即使开源也是阉割版&#xff0…

如何让 Azure AD 里的应用只允许特定用户登录

点击上方蓝字关注“汪宇杰博客”导语我的博客系统支持 Azure Active Directory 身份认证&#xff0c;然而用VS点点鼠标配出来的 Azure 应用&#xff0c;默认情况下会允许所有 AAD 内的用户访问&#xff0c;如何限制为只让特定用户访问呢&#xff1f;背景情况其实最近&#xff0…

程序员:这10种糟糕的程序命名,你遇到过几个?

点击上方“dotNET全栈开发”&#xff0c;“设为星标”加“星标★”&#xff0c;每天11.50&#xff0c;好文必达全文约2300字&#xff0c;预计阅读时间4分钟有人问&#xff1a;规范的命名风格真的能让你程序员少出bug&#xff1f;当遇到这方面的教训时&#xff0c;就会想到这句话…

.Net Core使用Ocelot网关(一) -负载,限流,熔断,Header转换

1.什么是API网关API网关是微服务架构中的唯一入口&#xff0c;它提供一个单独且统一的API入口用于访问内部一个或多个API。它可以具有身份验证&#xff0c;监控&#xff0c;负载均衡&#xff0c;缓存&#xff0c;请求分片与管理&#xff0c;静态响应处理等。API网关方式的核心要…

【STM32】STM32学习笔记-TIM定时中断(13)

00. 目录 文章目录 00. 目录01. TIM简介02. 定时器类型03. 基本定时器04. 通用定时器05. 高级定时器06. 定时中断基本结构07. 预分频器时序08. 计数器时序09. 计数器无预装时序10. 计数器有预装时序11. RCC时钟树12. 附录 01. TIM简介 TIM&#xff08;Timer&#xff09;定时器…

你知道怎么使用DebugView查看调试信息吗?

简介 DebugView是sysinternals工具集中的一款用来查看调试信息的工具。不管你是内核开发人员还是应用程序开发人员&#xff0c;都会用到这款神器。先简单看看DebugView可以干什么吧。可以查看应用程序输出的调试信息。可以查看驱动程序输出的调试信息。可以查看本地机器的调试信…

使用ASP.NET Core 3.x 构建 RESTful API - 3.3.3 ProblemDetails

当ASP.NET Core 大约在 2.1 版本的时候&#xff0c;它引入了 ProblemDetails。ProblemDetails是基于 RFC7807 这个规范&#xff0c;目的是让 HTTP 响应可以携带错误的详细信息&#xff0c;而不是只返回一个错误的状态码。 在 ASP.NET Core 2.2的时候&#xff0c;如果Controller…

(译)An introduction to Kubernetes

原文&#xff1a;https://www.jeremyjordan.me/kubernetes/&#xff08;博客园团队推荐的&#xff09;这篇博客文章将对Kubernetes进行介绍&#xff0c;以便您了解该工具背后的动机&#xff0c;含义以及使用方式。在后续文章中&#xff0c;我将讨论如何使用更具体的&#xff08…

WeihanLi.Npoi 支持 ShadowProperty 了

WeihanLi.Npoi 支持 ShadowProperty 了Intro在 EF 里有个 ShadowProperty (阴影属性/影子属性)的概念&#xff0c;你可以通过 FluentAPI 的方式来定义一个不在 .NET model 里定义的属性&#xff0c;只能通过 EF 里的 ChangeTracker 来操作这种属性。在导出 Excel 的时候&#x…

RNN循环神经网络概述

RNN与普通神经网络的区别&#xff1a;能够更好的处理序列的信息 RNN结构图 如图所示&#xff0c;St的值不仅取决于输入X的值&#xff0c;还取决于St-1的值。同时&#xff0c;St-1的值还取决于St-2的值&#xff0c;因此S1,S2,…,St-1的值都与St的值直接或间接相关&#xff0c;…

Dapr 运用

前置条件DockerWin10Dapr 部署本文将采用本地部署的方式。安装 Dapr CLI打开 Windows PowerShell 或 cmd &#xff0c;运行以下命令以安装 Dapr CLI&#xff0c;并添加安装路径到系统环境变量中。powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/…

微软将中止支持 .NET Core 2.2,建议开发者升级至 .NET Core 3.1

Current 版本 .NET Core 2.2 将在 12 月 23 日结束生命周期&#xff0c;开发者应更新到长期支持版本 .NET Core 3.1。.NET Core 2.2 于 2018 年 12 月 4 日发布&#xff0c;作为一个非 LTS 版本(“Current”)&#xff0c;它只在下一个版本发布后的三个月内受支持。.NET Core 3.…

使用.NET Core创建Windows服务 - 使用.NET Core工作器方式

原文&#xff1a;Creating Windows Services In .NET Core – Part 3 – The “.NET Core Worker” Way作者&#xff1a;Dotnet Core Tutorials译者&#xff1a;Lamond Lu译文&#xff1a;使用.NET Core创建Windows服务 - 使用.NET Core工作器方式使用.NET Core创建Windows服务…