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