使用 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 环境变量中。
若要了解 NuGet CLI 版本,请打开命令行并运行 nuget help
,或避免滚动更新,请使用 nuget help | more
。 帮助输出中的第一行显示版本。
安装包
NuGet CLI 安装 命令下载并安装指定的 NuGet 包。
重要
install
命令不会修改项目文件或 packages.config 文件。 install
和 restore
命令仅将包添加到磁盘,但不向项目添加依赖项。 若要添加项目依赖项,请通过 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
例如,以下命令将 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
删除包
若要删除包,请从项目文件夹中删除该包。 若要重新安装包,请使用 restore
或 install
命令。
从磁盘中删除包不会更新项目、packages.config 或 NuGet.Config 文件。 删除包的最佳方式是通过 Visual Studio 包管理器 UI 或包管理器控制台。
还原包
NuGet CLI restore 命令下载并安装任何缺少的包。 该命令适用于使用 PackageReference 或 packages.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 还原包。
有关详细信息,请参阅还原包。