跳至页脚内容
.NET 帮助
什么是NuGet(开发者教程中的工作原理)

NuGet 是什么?

允许开发人员编写、交换和使用功能代码的系统是任何现代开发平台的关键组成部分。 此功能代码被捆绑在“包”中,还包括项目使用所需的其他材料,如已编译的代码(以DLL形式)。

Microsoft支持的.NET代码共享方法(包括.NET Core)是NuGet。 NuGet使.NET框架的包的生产、托管和检索成为可能。 NuGet管理的软件包称为NuGet包。

NuGet 是什么? NuGet包只是一个扩展名为.nupkg的zip文件。 它包含软件运行所需的所有DLL。 它还包含一个描述性清单,列出包的版本号等信息。 开发人员只需安装NuGet包,便可以使用该包提供的方法。

class="hsg-featured-snippet">

什么是Nuget以及如何供.NET开发人员使用

  1. 利用 .NET CLI 自动化管道工作流程
  2. 使用 NuGet.exe CLI 访问特定的包创建者命令
  3. 使用 MSBuild 功能管理您的项目
  4. 利用 NuGet包管理器UI 在Visual Studio中提供用户友好的界面
  5. 根据您的项目需求安装相关的NuGet包

NuGet功能

  • NuGet adds private hosting support to the central nuget.org repository.
  • NuGet提供开发人员创建、发布和安装包所需的工具。
  • NuGet跟踪项目中使用的包,并允许您从该列表中恢复和更新那些包。
  • NuGet跟踪与包如何结构化相关的所有规范,如本地化和引用方式。
  • NuGet提供了众多API以便程序化地与其所有服务进行交互,并支持开发Visual Studio扩展的开发人员。
  • NuGet包括一个包缓存和一个全局文件夹,以便于安装和重新安装。 如果本地计算机上已有一个包,缓存将不会从中央存储库下载它,而是从缓存中提供该包。

NuGet包如何工作

NuGet, as a public host, maintains a central repository of over 100,000 unique packages. 每天,有数以百万计的.NET/.NET Core开发人员使用这些包。 NuGet还允许您在云上私下托管包(例如,在Azure DevOps上),在私有网络上,甚至在本地文件系统中托管包。 因此,那些包只有对拥有主机访问权限的开发人员可用,允许您向特定的消费者群体提供包。

无论主机的性质如何,它都作为包创建者和包消费者之间的联系。 创建者开发有用的NuGet包并将其分发到主机。然后,消费者在可访问的主机中搜索有用且兼容的包,下载并将那些包包含在其项目中。 一旦安装在项目中,包的API就可供项目代码的其余部分使用。

class="content-img-align-center"> 什么是NuGet,第1图

class="content__image-caption">

NuGet工具

管理NuGet包有六个工具。

.NET CLI

它是.NET Core和.NET Standard库的命令行界面(CLI),以及针对.NET Framework的SDK样式项目的命令行界面(请参阅SDK属性)。 某些NuGet CLI功能直接在.NET Core工具链内可用。 .NET CLI与nuget.exe CLI一样,不与Visual Studio项目互动。

NuGet.exe CLI

它是.NET Framework库和非SDK样式项目针对.NET Standard库的CLI。 它提供.NET CLI的所有功能,有些命令仅适用于包创建者,而其他命令仅适用于消费者。 例如,包创建者使用NuGet pack命令从各种程序集和相关文件生成包。 包用户使用NuGet install将包包含到项目文件夹中。 包开发人员和包用户都使用NuGet config设置NuGet配置变量。

NuGet CLI不用与Visual Studio项目互动因为它是一个跨平台工具。

包管理器控制台

包管理器控制台提供PowerShell命令,用于在Visual Studio项目中安装和管理包。

包管理器UI

包管理器UI为在Visual Studio项目中安装和管理包提供了一个用户友好的界面。

管理NuGet包管理器UI

此工具也为在Visual Studio中的项目安装和管理包提供了一个用户友好的界面。 此工具仅适用于Mac用户。

MSBuild

MSBuild允许用户直接从MSBuild工具链创建和恢复项目中使用的包。

包管理器UI和包管理器控制台是用于管理NuGet包的最广泛使用的工具。 我们将探索它们的使用方式。

使用NuGet包管理器UI

在Visual Studio中,从顶部菜单栏单击“工具”,然后选择“NuGet包管理器 >管理解决方案的NuGet包”。

将出现如下面所示的新窗口。

class="content-img-align-center"> 什么是NuGet,第2图

class="content__image-caption">

在已安装选项卡中,所有已安装的NuGet包将出现在这里。

点击浏览按钮并在搜索栏中输入包的名称。 我们将以IronBarcode为例进行搜索。

class="content-img-align-center"> 什么是NuGet,第3图

class="content__image-caption">

点击安装按钮,库将被安装并准备就绪。

IronBarcode NuGet包详情 是由Iron Software开发和维护的一个库,帮助C#软件工程师在.NET应用程序中读取和写入条形码和二维码。

核心功能包括:

  • 从图像或PDF中读取单个或多个条形码和二维码。
  • 图像校正以解决倾斜、方向、噪声、低分辨率、对比度等。
  • 创建条形码并将其应用到图像或PDF文档。
  • 将条形码嵌入到HTML文档中。
  • 样式化条形码并添加注释文本。
  • 二维码写入可添加标志、颜色及高级二维码对齐。

从产品文档页面了解更多关于IronBarcode的信息。

使用包管理器控制台

在Visual Studio中,从顶部菜单栏单击“工具”,然后选择“NuGet包管理器 =>包管理器控制台”。

包管理器控制台窗口将如下所示。

class="content-img-align-center"> 什么是NuGet,第4图

class="content__image-caption">

让我们使用包管理器控制台安装一个包。

Install-Package 'package-Name'命令用于安装包。 例如,要安装IronOCR包:

Install-Package IronPdf

探索IronOCR NuGet包 是一个C#软件库,允许.NET软件开发人员从图像和PDF文档中检测和读取文本。 它使用目前已知最先进的Tesseract引擎。 IronOCR shines above all 其他OCR库。 它支持多种编程语言。

Read more technical documentation about IronOCR from the product website.

一些有用的NuGet包

本节将描述一些可用于处理数据库和文件的有用NuGet包。

Entity Framework

发现Entity Framework NuGet包 是最常见和最强大的NuGet包,可用于在.NET应用程序中处理数据库。

它是一个微软支持的开源ORM框架,允许开发人员使用特定于领域的对象而不是使用存储数据的底层数据库表和列来处理数据。 在处理数据时,开发人员可以在更高级别的抽象上工作。 这允许他们用更少的代码创建和维护数据导向的应用程序,而不是传统应用程序。

管理SQL Server、Oracle、MySQL和PostgreSQL数据库服务器有单独的NuGet包。

Entity Framework入门指南 提供了有关Entity Framework功能的更多信息。

IronPDF。

IronPDF NuGet Package solves the difficult problem of adding PDF processing capabilities to apps. IronPDF 自动化格式化文档转换为PDF,并允许开发人员创建、编辑和导出PDF文档。

IronPDF的主要功能包括:

  • 使用.NET将Web表单、本地HTML页面和其他网页转换为PDF。
  • 允许用户下载文档,通过电子邮件发送,或存储在云上。
  • 生成发票、报价、报告、合同和其他文档。
  • 与ASP .NET、ASP .NET Core、Web表单、MVC、Web APIs在.NET Framework和.NET Core上工作。

在其产品文档页面上了解更多关于IronPDF的信息。

了解更多关于 IronXL 是一个 Excel 库,可帮助处理 Excel 文件而无需安装 Excel。

IronXL NuGet包 帮助C#软件工程师在.NET应用程序中读取、创建和编辑电子表格文件。 IronXL 无需使用Office Excel Interop,并且不需要额外的依赖项或安装Microsoft Office。

您可以从综合产品文档中了解更多关于IronXL的信息。

Iron Software提供五个库(IronPDF, IronXL, IronBarcode, IronWebScraper, 和 IronOCR)作为一个完整的.NET 套件。 购买完整套件时,您可以以两个库的价格获得所有五个库。所有购买均包括终身产品支持。

摘要

NuGet是.NET应用程序的包管理器。 NuGet客户端工具提供创建、共享和检索包的能力。 NuGet Gallery是所有包作者和消费者使用的中央包存储库。

  • NuGet provides the central nuget.org repository with support for private hosting.
  • NuGet提供开发人员创建、发布和安装包所需的工具。
  • NuGet维护项目中使用的包的参考,并能够从该列表中恢复和更新那些包。

常见问题解答

如何在C#中将HTML转换为PDF?

您可以使用IronPDF的RenderHtmlAsPdf方法将HTML字符串转换为PDF。您还可以使用RenderHtmlFileAsPdf方法将HTML文件转换为PDF。

什么是NuGet,它为何对.NET开发人员重要?

NuGet是一个包管理系统,允许.NET开发人员高效地创建、共享和使用打包的代码。它简化了第三方库和依赖项的管理,确保使用正确的版本,并使得更新和恢复包变得简单。

如何使用.NET CLI安装NuGet包?

要使用.NET CLI安装NuGet包,可以使用命令dotnet add package [PackageName]。这条命令将指定的包添加到您的项目中,简化了包管理的过程。

在Visual Studio中管理NuGet包的必要工具是什么?

在Visual Studio中管理NuGet包的必要工具包括包管理器UI、包管理器控制台和.NET CLI。这些工具允许高效地浏览、安装和更新项目中的包。

使用私有托管NuGet包的好处是什么?

私有托管NuGet包允许开发人员在特定组或组织中安全地共享包。这确保了只有授权用户才能访问某些包,加强了代码分发的安全性和控制。

NuGet包管理器控制台如何简化包管理?

Visual Studio中的NuGet包管理器控制台允许开发人员在其开发环境中直接执行安装、更新和管理包的命令。这为高效处理包依赖项和版本提供了一个强大的界面。

NuGet包中的清单起什么作用?

NuGet包中的清单包含元数据,例如包的版本号和其他重要信息。这些元数据对于识别、管理和解决项目中的依赖项至关重要。

NuGet可以用于非.NET项目吗?

虽然NuGet主要为.NET项目设计,但其基础设施可以支持各种其他项目的包管理。然而,它的全部潜力和功能在.NET生态系统中得到最佳利用。

NuGet中的缓存机制如何简化包管理?

NuGet的缓存机制通过本地存储包数据简化了包的安装和重新安装。这减少了从中央存储库重复下载包的需求,加快了开发过程。

一些流行的NuGet包的例子是什么?

流行的NuGet包包括用于数据库交互的Entity Framework,用于PDF处理的IronPDF,以及用于操作电子表格的IronXL。这些包为开发人员提供强大的工具来增强他们的.NET应用程序。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。