安装 NuGet 客户端工具
打算安装包? 请参阅安装 NuGet 包的方式。
要使用 NuGet,作为软件包使用者或创建者,可以使用命令行接口 (CLI) 工具以及 Visual Studio 中的 NuGet 功能。 本文简要介绍了不同工具的功能,如何安装它们,以及它们功能可用性的相对优势。
若要开始使用 NuGet 来使用包,请参阅以下文章:
若要开始创建 NuGet 包,请参阅以下文章:
工具 | 说明 | 下载 |
---|---|---|
dotnet SDK | 适用于 .NET Core 和 .NET Standard 库,以及适用于任何 SDK 样式项目(例如面向 .NET Framework 的项目)的 CLI 工具。 这款 CLI 工具包含在 .NET Core SDK 中,并在所有平台上提供核心 NuGet 功能。 从 Visual Studio 2017 开始,dotnet CLI 将自动随任何 .NET Core 相关工作负载一起安装。 | .NET Core SDK |
nuget.exe | 适用于 .NET Framework 库,以及适用于任何非 SDK 样式项目(例如面向 .NET Standard 库的项目)的 CLI 工具。 这款 CLI 工具在 Mono 下运行时,提供 Windows 上的所有 NuGet 功能以及 Mac 和 Linux 上在 Mono 下运行时的大多数功能。 | nuget.exe |
Visual Studio | 对于 Windows,Visual Studio 2012 及更高版本中都包括“NuGet 包管理器”。 Visual Studio 提供包管理器 UI和包管理器控制台(Windows 版 PowerShell)。 可以使用这些工具运行大多数 NuGet 操作。 | Visual Studio |
Visual Studio for Mac | 对于 Mac,特定 NuGet 功能是直接内置的。 包管理器控制台目前不可用。 对于其他功能,请使用 dotnet SDK 或 nuget.exe CLI 工具。 |
Visual Studio for Mac |
Visual Studio Code | 对于 Windows、Mac 和 Linux,NuGet 功能可通过市场扩展提供,或者使用 dotnet SDK 或 nuget.exe CLI 工具。 |
Visual Studio Code |
注意
根据 Microsoft 现代生命周期策略,Visual Studio for Mac 计划于 2024 年 8 月 31 日停用。 有关详细信息,请参阅 Visual Studio for Mac 的最新情况。
MSBuild CLI 还会还原和创建包。 MSBuild 不是与 NuGet 一起使用的通用工具。 此 CLI 工具主要用于生成服务器。
程序包管理器控制台命令只能在 Windows 的 Visual Studio 中工作,不能在其他 PowerShell 环境中工作。
支持策略
Visual Studio for Windows 支持策略可在 Visual Studio 产品生命周期和维护中找到。
NuGet.exe 的最新版本完全受支持,可以依赖于缺陷修复、更新以及增强功能。 有关 NuGet.exe 支持策略的详细信息,请参阅 Microsoft 新式生命周期策略。
可以在 .NET 和 .NET Core 支持策略中找到 .NET SDK 支持策略。
修补程序版本
当 Visual Studio 或 .NET SDK 的长期支持 (LTS) 版本需要关键安全修补程序时,将专门发布 NuGet.exe 的修补版本。
所有安全 bug 都会在 Microsoft 安全响应中心(MSRC) 的 MSRC 报告页面。 另请参阅 NuGet.Client 存储库中的安全策略。
NuGet.exe 取消列出
从 tools.json 中删除不支持、已弃用或易受攻击的 NuGet.exe 版本。
Visual Studio
在 Visual Studio 2017 和更高版本中,Visual Studio 安装程序包括具有任何采用 .NET 的工作负荷的 NuGet 包管理器。
还可以单独安装程序包管理器或验证安装。 运行 Visual Studio 安装程序并在单个组件 > 代码工具 > NuGet 包管理器下检查选项设置。 有关详细信息,请参阅使用 NuGet 包管理器在 Visual Studio 中安装和管理包。
注意
如果是更早版本的 Visual Studio,可将 NuGet 扩展到 https://dist.nuget.org/index.html。
CLI 工具
可以使用 dotnet CLI 或 CLI 支持 Visual Studio IDE 中的 NuGet 功能。 dotnet CLI 随某些 Visual Studio 工作负载一起安装,例如 .NET Core。 如前面所述,必须单独安装 nuget.exe
CLI。 有关各工具功能之间的比较,请参阅功能可用性部分。
若要面向 .NET Core 或 .NET Standard,请使用 dotnet SDK CLI 工具。 该 CLI 是 SDK 样式项目格式所必需的,该格式使用 SDK 属性。
要面向 .NET Framework(仅限非 SDK 样式项目),请使用
nuget.exe
CLI 工具。 如果项目从packages.config
迁移到 PackageReference,请改为使用 dotnet CLI 工具。
dotnet SDK
dotnet SDK 是一款 .NET Core 2.0 CLI 工具,适用于所有平台(Windows、Mac 和 Linux),并提供核心的 NuGet 功能,例如安装、还原和发布程序包。 dotnet CLI 提供了与 .NET Core 项目文件(如 .csproj
)的直接集成,这在大多数情况下都很有用。 此外,该 CLI 也是直接为每个平台构建的,不需要你安装 Mono。
安装 dotnet SDK
在开发人员计算机上,请安装 .NET Core SDK。 从 Visual Studio 2017 开始,dotnet CLI 将自动随任何 .NET Core 相关工作负载一起安装。
对于生成服务器,请按照在持续集成中使用 .NET Core SDK 和工具中的说明进行操作。
要了解如何在 dotnet CLI 工具中使用基本命令,请参阅使用 dotnet CLI 安装并管理 NutGet 包。
nuget.exe CLI
NuGet CLI,即 nuget.exe
是适用于 Windows 的命令行实用程序,可提供所有 NuGet 功能。 该 CLI 还可以使用 Mono 在 Mac OSX 和 Linux 上运行,但存在一些限制。
要了解如何 nuget.exe
CLI 工具的基本命令,请参阅使用 nuget.exe CLI 安装 NuGet 包。
安装 nuget.exe
始终安装支持配置的最新版本的工具。
- 可从
https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
下载最新推荐版本。 - 如果已安装
nuget.exe
CLI 工具,可使用命令nuget update -self
将工具更新至最新版本。 - 为了实现与旧版持续集成系统的兼容性,旧 URL
https://nuget.org/nuget.exe
当前提供弃用的 2.8.6 版 CLI 工具。
请访问 nuget.org/downloads,下载 3.3 或更高版本的 NuGet。
- 版本 5.0 及更高版本要求使用 .NET Framework 4.7.2 或更高版本。
- 需要版本 4.1.0 及更高版本才能将包发布到
nuget.org
。 - 版本 2.8.6 不兼容 Mono。
每次下载都直接下载
nuget.exe
文件。 让浏览器将文件保存到选定文件夹。 此下载文件不是安装程序,因此如果直接在浏览器中运行此文件,不会看到任何内容。若要随时随地使用 CLI 工具,请将
nuget.exe
文件的文件夹位置添加到 PATH 环境变量。
功能可用性
下表比较了受支持平台的 dotnet 和 nuget.exe
CLI 工具的可用功能。
功能 | dotnet CLI | nuget CLI (Windows) | nuget CLI (Mono) | Visual Studio (Windows) | Visual Studio for Mac |
---|---|---|---|---|---|
搜索包 | ✔ | ✔ | ✔ | ✔ | ✔ |
安装/卸载包 | ✔ | ✔ (1) | ✔ | ✔ | ✔ |
更新包 | ✔ | ✔ | ✔ | ✔ | |
还原包 | ✔ | ✔ | ✔ (2) | ✔ | ✔ |
管理包源(来源) | ✔ | ✔ | ✔ | ✔ | ✔ |
在源上管理包 | ✔ | ✔ | ✔ | ||
设置源的 API 密钥 | ✔ | ✔ | |||
创建包 (3) | ✔ | ✔ | ✔ (4) | ✔ | |
发布包 | ✔ | ✔ | ✔ | ✔ | |
复制包 | ✔ | ✔ | |||
管理 global-packages 文件夹和缓存文件夹。 | ✔ | ✔ | ✔ | ||
管理 NuGet 配置 | ✔ | ✔ | ✔ |
功能说明
- (1) 不影响项目文件。 改为使用 dotnet SDK CLI 工具。
- (2) 仅适用于
packages.config
文件,不适用于解决方案 (.sln
) 文件。 - (3) 只能通过 CLI 使用各种高级包功能,因为 Visual Studio UI 工具中没有它们。
- (4) 适用于
.nuspec
文件,但不适用于项目文件。
即将推出的功能
如果希望预览即将推出的 NuGet 功能,请安装 Visual Studio 预览版,该版本与 Visual Studio 稳定版本并行工作。 若要报告问题或分享对预览版的看法,请在 NuGet GitHub 存储库上打开问题。
相关文章
- 使用 Visual Studio 安装和管理包
- 使用 dotnet CLI 安装和管理包
- 使用 nuget.exe CLI 安装和管理包
- 使用 PowerShell 安装和管理包
- 使用 nuget.exe CLI 创建包
- 发布 NuGet 包
- 包管理器控制台 PowerShell 引用
Windows 上的开发人员还可以深入了解 NuGett 包资源管理器。 此应用程序是一款开源独立工具,可用于直观浏览、创建和编辑 NuGet 包。 它在很多场景下都非常有用,例如,无需重新生成包即可对包结构进行实验性更改。