连接到 Azure Artifacts 源 (dotnet)

Azure DevOps Services |Azure DevOps Server 2022 |Azure DevOps Server 2020

使用 Azure Artifacts,可以无缝地将 NuGet 包发布到 Azure Artifacts 源,以便可以根据源的可见性设置与其他人私下或公开共享它们。 本指南将引导你完成设置项目的过程,以便使用 dotnet 命令行界面通过 Azure Artifacts 源进行身份验证。

先决条件

连接到源

  1. 选择项目,然后从下拉菜单中选择源。

  2. 选择连接到源,然后从 NuGet 部分选择 dotnet

    显示如何使用 dotnet 连接到源的屏幕截图。

  3. 按照项目设置中的说明操作,设置 nuget.config 文件。 文件的结构应如下所示:

    • 项目作用域的源

      XML
      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
    • 组织作用域的源

      XML
      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. 登录到 Azure DevOps 集合,然后导航到项目。

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

  3. 选择连接到源,然后从左侧导航窗格中选择 dotnet

  4. 按照项目设置部分中的说明操作,配置 nuget.config 文件并连接到源。

    显示如何在 Azure DevOps Server 2020 和 2022 中使用 dotnet 连接到源的屏幕截图。

使用服务主体对 NuGet 源进行身份验证

若要使用服务主体进行身份验证,必须先安装 Artifacts 凭据提供程序

设置 ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS 环境变量,如下所示,指定源 URL、服务主体的应用程序(客户端)ID 以及服务主体证书的使用者名称或文件路径。 (证书使用者名称或文件路径之间只需要一个。)

在 PowerShell 中,输入以下代码。

PowerShell
$env:ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS = @'{
    "endpointCredentials": [
        {
            "endpoint": "<FEED_URL>",
            "clientId": "<SERVICE_PRINCIPAL_APPLICATION_(CLIENT)_ID>",
            "clientCertificateSubjectName": "<SERVICE_PRINCIPAL_CERTIFICATE_NAME>",
            "clientCertificateFilePath": "<SERVICE_PRINCIPAL_CERTIFICATE_PATH>"
        }
    ]
}
'@