使用 NuGet CLI 管理 NuGet 包

可以使用 nuget.exe CLI 工具在 Visual Studio 项目和解决方案中管理 NuGet 包。 本文介绍用于管理 NuGet 包的最常见 NuGet CLI 命令。 所有这些命令在 Windows 上运行,大多数命令在 Mac 和 Linux 上使用 Mono。

NuGet CLI 在 .NET 框架项目和非 SDK 样式项目上运行,例如,面向 .NET 标准库的非 SDK 样式项目。 NuGet CLI 命令可以使用列出包引用的项目 packages.config 文件。 对于使用 PackageReference 包引用而不是 packages.config 的非 SDK 样式项目,请改用 dotnet CLI

注意

对于使用 packages.config 的大多数非 SDK 样式项目,最好将 packages.config 迁移到 PackageReference,然后使用 dotnet CLI 而不是 NuGet CLI 来管理包。 但是,不能迁移 C++ 或 ASP.NET 项目。

对于大多数命令,NuGet CLI 工具将使用当前目录,除非你在命令中指定了其他位置。 若要运行 NuGet CLI 命令,先打开命令行并切换到包含项目文件的目录。

有关命令和其参数的完整列表,请参阅 NuGet CLI 参考文档

先决条件

nuget.org 下载 NuGet CLI。将 nuget.exe 文件保存到合适的目录,并确保该目录位于 PATH 环境变量中。

注意

还可以使用适用于 Windows 的 winget 工具或适用于 macOS 的 Homebrew

若要了解 NuGet CLI 版本,请打开命令行并运行 nuget help,或避免滚动更新,请使用 nuget help | more。 帮助输出中的第一行显示版本。

安装包

NuGet CLI 安装 命令下载并安装指定的 NuGet 包。

重要

install 命令不会修改项目文件或 packages.config 文件。 installrestore 命令仅将包添加到磁盘,但不向项目添加依赖项。 若要添加项目依赖项,请通过 Visual Studio 包管理器 UI包管理器控制台添加包,然后运行 installrestore

使用 -OutputDirectory 选项将包安装到特定目录。 如果未指定输出目录,install 会使用当前目录。

nuget install <packageID | configFilePath> -OutputDirectory <outputDirectory>

例如,若要将 Newtonsoft.json 包安装到子目录,请使用以下命令:

nuget install Newtonsoft.Json -OutputDirectory packages

可以指定当前或另一个目录中的现有 packages.config 文件,而不是指定要安装的包。 该 install 命令将安装 packages.config 文件中列出的所有包。

nuget install packages.config

例如,以下命令将 config 子目录中的 packages.config中列出的所有包安装到子目录中:

nuget install config\packages.config -OutputDirectory packages

安装特定版本的包

install 命令将安装最新版本的包,除非指定其他版本。 若要安装包的特定版本,请使用 -Version 选项:

nuget install <packageID | configFilePath> -Version <version>

例如,要安装软件包的版本 Newtonsoft.json 12.0.1,请使用:

nuget install Newtonsoft.Json -Version 12.0.1

列出包

使用 list 命令显示包文件夹中安装的包列表。 使用 -Source 选项限制列表。

nuget list -Source <source>

例如,若要列出 MyProject子目录中的包,请使用:

nuget list -Source C:\Users\%USERNAME%\source\repos\MyProject\packages

还可以使用搜索词搜索包名称、标记或说明:

nuget list <"search term"> -Source <source>

更新所有包

使用 update 命令将项目 packages.config 文件中的所有包更新为其最新可用版本。 最好在 update 运行之前运行 restore

nuget update

删除包

若要删除包,请从项目文件夹中删除该包。 若要重新安装包,请使用 restoreinstall 命令。

从磁盘中删除包不会更新项目、packages.configNuGet.Config 文件。 删除包的最佳方式是通过 Visual Studio 包管理器 UI包管理器控制台

还原包

NuGet CLI restore 命令下载并安装任何缺少的包。 该命令适用于使用 PackageReferencepackages.config 进行包引用的项目。

install 一样,restore 命令仅将包添加到磁盘,但不会修改项目文件或 packages.config。若要添加项目依赖项,请使用 Visual Studio 包管理器 UI 或控制台。

若要还原包,请运行以下命令:

nuget restore <projectPath>

restore 命令使用指定项目路径中的解决方案文件或 package.config 文件。

例如,若要还原当前目录中 MySolution.sln 的所有包,请运行:

nuget restore MySolution.sln

注意

对于使用 PackageReference 的非 SDK 样式项目,请改用 msbuild -t:restore 还原包。

有关详细信息,请参阅还原包

后续步骤