在 nuget.org 和您的组织可能建立的专用包库或包画廊中,您可以找到数万个可以用于您的应用和服务的非常有用的包。 但是,无论源如何,使用包都遵循相同的常规工作流。
*
Visual Studio 和 dotnet.exe。nuget install 命令不会更改项目文件或 packages.config 文件;必须手动管理条目。
有关更多详细信息,请参阅“查找和选择包”,以及安装包时会发生什么情况?
NuGet 会记住每个已安装包的标识和版本号,将其记录在项目文件(使用 PackageReference)中,或者 packages.config,具体取决于项目类型和 NuGet 版本。 使用 NuGet 4.0+ 时,PackageReference 是首选的,尽管这可通过 包管理器 UI 在 Visual Studio 中配置。 在任何情况下,都可以随时查看相应的文件,以查看项目依赖项的完整列表。
小窍门
请务必始终检查要在你的软件中使用的每个包的许可证。 在 nuget.org,可以在每个包的说明页右侧找到 “许可证信息” 链接。 如果包未指定许可条款,请使用包页上的 “联系人所有者” 链接直接与包所有者联系。 Microsoft不向第三方程序包提供商授予任何知识产权,并且不负责第三方提供的信息。
安装包时,NuGet 通常会检查包是否已在缓存中可用。 可以从命令行手动清除此缓存,如 管理全局包和缓存文件夹中所述。
NuGet 还确保包支持的目标框架与项目兼容。 如果包不包含兼容的程序集,NuGet 将显示错误。 请参阅 解决不兼容的包错误。
将项目代码添加到源存储库时,通常不包括 NuGet 包。 以后克隆存储库或获取项目的人员,包括在 Visual Studio Team Services 等系统上的构建代理,必须在运行构建之前还原必要的包。
包还原 使用项目文件中的信息或 packages.config 重新安装所有依赖项。 请注意,此过程存在差异,如 依赖项解析中所述。 此外,上面的图表未显示包管理器控制台的还原命令,因为如果使用该控制台意味着您已处于 Visual Studio 环境中,此环境通常会自动还原包,并如图所示提供解决方案级命令。
有时,需要重新安装项目中已包含的包,这也可能重新安装依赖项。 这很容易使用 nuget reinstall 命令或 NuGet 包管理器控制台。 有关详细信息,请参阅 重新安装和更新包。
最后,NuGet 的行为由 NuGet.Config 文件驱动。 可以使用多个文件在不同层级上集中某些设置,如 配置 NuGet 行为中所述。
安装 NuGet 包的方法
使用下表中的任何方法下载并安装 NuGet 包。
| Tool | Platforms | Description |
|---|---|---|
| dotnet CLI | 全部 | 适用于 .NET Core 和 .NET Standard 库的 CLI 工具,以及面向 .NET Framework 的 SDK 样式项目(请参阅 SDK 属性)。 检索由 <package_name> 标识的包,并添加对项目文件的引用。 此外,检索并安装依赖项。 |
| Visual Studio | Windows 和 Mac | 提供一个用户界面,您可以通过该界面从指定的包源浏览、选择并安装包及其依赖项到项目中。 向项目文件添加对已安装包的引用。 |
| 包管理器控制台 (Visual Studio) | 仅限 Windows | 检索并安装由<package_name>标识的包,该包来自所选源,并将其安装到解决方案中的指定项目中,然后向项目文件添加引用。 此外,检索并安装依赖项。 |
| nuget.exe CLI | 全部 | 面向 .NET Standard 库的 CLI 工具,适用于 .NET Framework 库和非 SDK 样式项目。 检索由 <package_name> 标识的包,并将其内容扩展到当前目录中的文件夹;还可以检索文件中列出的 packages.config 所有包。 此外,负责检索和安装依赖项,但不对项目文件或 packages.config进行任何修改。 |