連接到 Azure Artifacts 源 (dotnet)

Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022

Azure Artifacts 讓開發人員能夠無縫地將套件發佈到摘要中,並根據摘要的可見性設定私下分享,或對於現有的公開專案公開分享。 本指南將指導你完成設置專案並使用 Azure Artifacts 源進行身份驗證。

先決條件

產品 需求
Azure DevOps - Azure DevOps 組織。
- Azure DevOps 項目。
- Azure Artifacts 資料饋送。
- 下載並安裝 .NET SDK 版本 9.0.200 或更新版本。

設定 Azure Artifacts Credential Provider

要與你的動態進行驗證,你必須先安裝 Azure 憑證提供者。 使用 dotnet 附帶的工具安裝程式,你可以從 CLI 中用以下指令安裝憑證提供者:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool

如果你的儲存庫層級 nuget.config 設定為只使用Azure Artifacts原始碼,請從該目錄外執行安裝指令,或明確設定 作為來源:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json

您也可以將工具釘選至主版本(例如,在重現性很重要的容器映像中):

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json

當你第一次執行需要驗證的操作時,應該透過以下其中一種方式進行驗證:

  • 使用 --interactive 執行,以便 dotnet 提示你進行驗證。
  • 透過環境變數提供憑證(例如在無人值守的情境下)。

若有互動授權,請前往專案目錄並執行:

dotnet restore --interactive

這個指令會讓你登入並獲得一個代幣。 登入成功後,在權杖過期前,你都可以不需使用 --interactive 執行需要驗證的指令。 更多詳情請參見 Session token cache locations。

連接到訊息來源

  1. 選取 工件,然後從下拉菜單中選取您的供稿。

  2. 選取 [連線至饋送],然後從 [NuGet] 區段中選取 [dotnet]。

  3. 將 nuget.config 檔添加到專案中。 將其與 .csproj 或 .sln 檔放在同一資料夾中,然後將 Project setup (項目設置 ) 部分中提供的代碼片段粘貼到其中。 您的 nuget.config 檔應類似於以下內容:

    • 專案範圍的動態消息:

      <?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 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 檔添加到專案中。 將其與 .csproj 或 .sln 檔放在同一資料夾中,然後將 Project setup (項目設置 ) 部分中提供的代碼片段粘貼到其中。

    截圖顯示如何在 Azure DevOps Server 2020 和 2022 中連接串流。

使用服務主體進行驗證

可以使用服務主體對 Azure Artifacts 源進行身份驗證。 為此,請設置 ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS 環境變數,如下所示。

此變數應定義源 URL、服務主體的應用程式(用戶端)ID 以及證書使用者名稱或證書檔的路徑(只需要這兩者中的一個)。

$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>"
        }
    ]
}
'@