Visual Studio 中的 NuGet 包管理器选项

Visual Studio 提供了多个用于配置 NuGet 包管理器行为的选项页。 NuGet 的配置设置存储在 NuGet.Config 文件中。

访问 NuGet 选项

可通过多种方式访问 NuGet 包管理器选项:

  1. 在主菜单中:转到 “工具 > 选项”,然后在左窗格中展开 “NuGet 包管理器 ”。
  2. 在“工具 > NuGet 包管理器包管理器>设置”菜单命令下找到的 NuGet 菜单。
  3. 快速搜索:使用 Visual Studio 搜索 搜索“NuGet”或与 NuGet 相关的设置名称快速跳转到其“选项”页。
  4. 在包管理器 UI 中:按包管理器 UI 工具栏中的设置(齿轮)图标。
  5. 在包管理器控制台中:单击包管理器控制台工具栏中的设置(齿轮)图标。

概况

“常规选项”页包含用于控制 NuGet 包管理行为的设置。

在 NuGet 选项的“常规”页中突出显示的“清除 NuGet 本地资源”按钮

包还原

生成作期间自动包还原的设置:

  • 允许 NuGet 下载缺少的包:选择以启用包还原和“还原 NuGet 包”命令。
  • 在 Visual Studio 中生成期间自动检查缺少的包:选择在从 Visual Studio 运行生成时自动还原任何缺失的包。

有关 包还原 行为的详细信息,请参阅包还原。

绑定重定向

  • 跳过应用绑定重定向:启用后,NuGet 不会在包安装或更新期间自动在 app.config 或 web.config 文件中添加或更新绑定重定向

包管理

  • 默认包管理格式:在 NuGet 格式 PackageReference (建议用于大多数项目)和 packages.config (旧项目的旧格式)之间进行选择。 有关详细信息,请参阅 “选择默认包管理格式”。

    • PackageReference:将包引用直接存储在项目文件中。 这是支持更好的依赖项解析且 SDK 样式项目需要的新式格式
    • packages.config:将包信息与项目文件分开存储的旧 XML 文件格式
  • 首次安装包时出现格式选择提示:启用后,Visual Studio 将要求你在 PackageReference 和 packages.config 首次在尚未安装包的项目中安装包时选择。

清除 NuGet 本地资源

清除 NuGet 本地资源 ”命令按钮允许清除 NuGet 的本地缓存,包括:

  • http-cache:下载的包元数据和包
  • global-packages:Installed packages folder
  • temp:临时文件
  • plugins-cache:插件作结果

有关 NuGet 缓存和文件夹的详细信息,请参阅 管理全局包、缓存和临时文件夹

配置文件

“配置文件”选项页显示适用于当前解决方案的 NuGet.Config 文件,并允许直接在 Visual Studio 中打开这些文件进行编辑。

若要编辑文件,请选择文件路径,然后按“打开”按钮。 该文件将在 Visual Studio 的新选项卡中打开,可在其中直接对其进行编辑。

NuGet 选项的配置文件页,其中突出显示了“打开”按钮

配置文件按从高到低优先级的顺序列出。 NuGet 使用分层配置系统,其中合并了多个配置文件中的设置。 有关详细信息,请参阅 通用 NuGet 配置

包源

“包源”选项页允许管理 NuGet 从中下载包的源。

NuGet 选项的“包源”页

管理包源

根据 NuGet.Config 文件列出所有配置的包源。

  • 名称:源的显示名称
  • :包源的 URL 或文件路径
  • 已启用复选框:启用或禁用源,而不将其删除。
  • 允许不安全的连接:启用或禁用允许不安全的 HTTP 连接

若要修改,请使用表下方的 “添加”、“编辑”和“删除”按钮 。 复选框可以直接在表中切换。 在“添加/编辑”对话框中按“保存”,更改将在相关的 NuGet.Config 文件中更新。

“包源”页上的“添加”对话框

计算机范围的包源

在计算机级别定义的包源显示在下面的专用部分中。 这些内容通常由 Visual Studio 工作负载预配,只能使用“已启用”列中的复选框启用或禁用这些工作负载。

“包源”页上的计算机范围的源表

允许不安全的连接

出于安全原因,NuGet 默认强制使用 HTTPS 源。 如果需要使用 HTTP 源,则必须显式允许它。 使用 HTTP 源时,包源表的第一列将显示一个图标,其中包含有关该行中包源的警告或错误的信息。

⚠️ 使用 HTTP 包源并启用“允许不安全连接”时,最左侧的状态列中会显示警告:

HTTP 源不安全。 请考虑改用 HTTPS。 已启用“AllowInsecureConnections”,允许 HTTP 访问。

启用了 HTTP 源警告和“允许不安全连接”的“包源”页

❌ 使用 HTTP 源并禁用“允许不安全连接”时,最左侧的状态列中会显示错误,NuGet 还原将失败:

NuGet 需要 HTTPS 源。 若要使用 HTTP 源,必须在 NuGet.Config 文件中显式将“allowInsecureConnections”设置为 true。

“包源”页,其中“HTTP 源错误”和“允许不安全连接”已禁用

有关配置 HTTP 源权限的详细信息,请参阅 https://aka.ms/nuget-https-everywhere

包源映射

包源映射允许你控制哪些包源用于特定包,从而提高供应链安全性。

NuGet 选项的“包源映射”页

若要修改,请使用表下方的 “添加”、“编辑”和“删除”按钮

管理包源映射

根据 NuGet.Config 文件列出所有配置的包源映射。

  • 包模式:当前映射的包模式(例如, Microsoft.*Contoso.Contracts
  • :映射到包模式的一个或多个包源。 必须启用包源才能显示。

若要修改,请使用表下方的 “添加”、“编辑”和“删除”按钮 。 在“添加/编辑”对话框中按“保存”,更改将在相关的 NuGet.Config 文件中更新。

“包源映射添加”对话框

有关详细信息,请参阅 包源映射

无效的源映射

如果在 NuGet.Config 文件中未启用现有源映射中列出的包源,则会在最左侧的列中显示错误。

请确保映射中的所有源值都引用了既可用又已启用的包源。 否则,映射可能无法按预期工作。

具有无效包源的包源映射