使用 NuGet CLI 管理 NuGet 包

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

NuGet CLI 在 .NET Framework 和非 SDK 样式项目上运行,例如面向 .NET Standard 库的非 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包管理器控制台添加包,然后运行install或运行restore

-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

例如,以下命令将配置子目录中 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>

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

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

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

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

更新所有包

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

nuget update

删除包

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

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

恢复软件包

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

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

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

nuget restore <projectPath>

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

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

nuget restore MySolution.sln

注释

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

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

后续步骤