在公共源中使用上游源

Azure DevOps Services

Azure Artifacts 可帮助你从单个源管理所有依赖项。 通过设置上游源,可以从诸如 NuGet.orgnpmjs.com 这样的源和公共注册表中使用包。 本文将指导你配置公共源中的上游源并恢复包。

先决条件

产品 要求
Azure DevOps - 一个 Azure DevOps 组织
- Azure DevOps 项目
- 将项目可见性设置为 公共

创建公共源

公共源是公共项目中的项目范围源。 公共源继承宿主项目的可见性设置。 如果您已有公共信息流,可以跳到下一部分,否则请按如下所示创建一个:

  1. 登录到 Azure DevOps,然后导航到公共项目。

  2. 选择 “工件”,然后选择“创建订阅源”

  3. 为信息流提供名称,然后选择项目:YourProjectName(建议) 作为项目的范围

  4. 完成操作后,选择“创建”

    一个屏幕截图,展示了如何在 Azure Artifacts 中创建新的公共源。

重要

公共源不支持上游流向到专用 Artifacts 源。 只能上游访问公共注册表或其他 公共 Azure Artifacts 源。

添加上游源

现在您的公共信息流已设置完成,您可以开始添加上游源。 对于公共源,只能将公共注册表或其他公共 Azure Artifacts 源配置为上游源。 按照以下步骤添加上游源:

  1. 登录到 Azure DevOps,然后导航到公共项目。

  2. 选择 “项目”,然后从下拉菜单中选择公共源。

  3. 选择齿轮 图标 以打开 订阅源设置

  4. 选择 上游源,然后选择“ 添加上游”。

  5. 选择上游源 类型。 在此示例中,将 NuGet.org 添加为上游源,因此请选择 “公共源”。

  6. 从下拉菜单中选择 NuGet画廊 ,然后选择“ 添加”。

  7. 选择右侧 的“保存 ”以保存新的上游源。

还原包

在项目目录中运行以下命令以还原包:

注意

必须具有 Feed 和上游读取器(协作者) 或更高权限才能从上游源安装新的包版本。 匿名用户只能安装源中已存在的包。

nuget.exe restore

问答

问:我正在尝试还原我的包,但我不断收到 401 未经授权的错误。 为什么?

只有经过身份验证和授权且具有适当权限的标识才能更改信息流的内容。 这包括保存来自上游源的包。

  • 匿名用户可以 下载已保存在源中的包,但无法从上游源保存新包。

  • 项目维护人员 应确保所有必需的包版本都保存在公共源中。 为此,可以使用能够在出现提示时提供凭据的身份来还原项目,并且该身份具有 提要和上游读取权限(协作者) 或更高级别的权限。

如果匿名用户反复遇到凭据提示(401 错误),请尝试以下方法:

  • 避免在项目配置中使用包版本范围。 指定显式包版本,以确保客户端仅请求所需的确切版本。

  • 使用锁文件(如果支持),以便包管理客户端仅在还原或安装操作期间请求所需的确切版本。

问:我在 Visual Studio 中还原包,但它们来自其他源。 为什么?

答:确保 Visual Studio 使用 nuget.config 文件中指定的源,而不是本地 NuGet 包管理器。 有关更多详细信息,请参阅包源。

还可以使用 NuGet CLI 通过运行以下命令来强制 NuGet 使用配置文件中的源:

nuget restore -config <PATH_TO_NUGET_CONFIG_FILE>