將您的第一個套件發佈至 Azure Artifacts 摘要

Azure Artifacts 可讓開發人員有效率地從單一來源管理其所有相依項。 Azure Artifacts 中的摘要可作為組織存放庫,用於儲存、管理和共用套件,無論是在小組內、跨組織,還是在因特網上公開。 Azure Artifacts 支援多種套件類型,包括 NuGet、npm、Python、Maven、Cargo 和通用套件。

本文會逐步說明如何將您的第一個 NuGet 套件發佈到 Azure Artifacts 摘要來源。 或者,您可以遵循指示使用 GitHub Copilot 來協助設定專案並準備要發佈的套件。

必要條件

產品 要求
Azure DevOps - Azure DevOps 組織
- Azure DevOps 項目
- 下載並安裝 .NET SDK 版本 9.0.200 或更新版本。
GitHub Copilot (選擇性) - 設定 GitHub Copilot 和 Visual Studio Code。 如果您尚未註冊,則可以使用為期 30 天的 GitHub Copilot 免費試用。

建立訂閱源

如果您已有摘要,可以略過此部分。 否則,請遵循下列步驟,在 Azure Artifacts 中建立新摘要:

  1. 登入您的 Azure DevOps 組織,然後瀏覽至您的專案。

  2. 選取 [ 工件],然後選取 [ 建立資訊源]。

  3. 為您的摘要提供描述性 名稱 ,並設定其 可見度 ,以定義誰可以檢視摘要中的套件。 定義摘要的 範圍,如果您想要包含來自公開來源的套件,請勾選 上游來源 核取方塊。

  4. 完成後,選取 建立

    螢幕擷取畫面,顯示如何在 Azure DevOps Services 中建立新的摘要。

  1. 登入您的 Azure DevOps 集合,然後流覽至您的專案。

  2. 選取 [ 工件],然後選取 [ 建立資訊源]。

  3. 為您的摘要提供描述性 名稱 ,並設定其 可見度 ,以定義誰可以檢視摘要中的套件。 定義您的摘要範圍;如果您想要包含來自公用來源的套件,請勾選 上游來源 核取方塊。

  1. 完成後,選取 建立

    顯示如何在 Azure DevOps Server 2022 中建立新 Feed 的螢幕擷取畫面。

準備您的包裹

在此範例中,您將使用範例 .NET Core 類別庫,並在建置專案及建立可發佈到摘要的 NuGet 套件之前,先設定套件中繼資料。 如果您還沒有專案,請遵循本指南中的指示, 使用 Visual Studio Code 建立 .NET 類別程式庫

  1. 在 Visual Studio Code 中開啟您的專案,然後選取您的 csproj 檔案。 在 <PropertyGroup> 標籤內新增您的套件中繼資料。 您的檔案應類似下列內容:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <RootNamespace>demo_class_library</RootNamespace>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    
        <PackageId>YOUR_PACKAGE_NAME</PackageId>
        <Version>YOUR_PACKAGE_VERSION</Version>
        <Authors>YOUR_NAME</Authors>
        <Company>YOUR_COMPANY</Company>
    
      </PropertyGroup>
    
    </Project>
    
  2. 在專案目錄中執行下列命令,以建置專案並建立 .nupkg 套件。 您的套件將位於資料夾中 bin\release

    dotnet pack
    

設定 Azure Artifacts Credential Provider

要與你的動態進行認證,你必須先安裝 Azure Artifacts 憑證提供者。 使用 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

首次使用

首次執行需要驗證的操作時,請採用以下其中一種方法:

  1. 執行 S --interactivedotnet 的指令,提示你登入。 這是大多數地方開發情境的建議做法。

在執行互動式指令之前,請先確認你的專案已設定好,且你的訂閱源已加入 nuget.config。關於設定細節,請參見 專案設定

當你的專案設定完成並連接到你的訂閱源後,請前往專案目錄並執行:

dotnet restore --interactive

這個指令會讓你登入並獲得一個會話令牌。 登入成功後,在快取的工作階段權杖仍然有效期間,你可以在不使用 --interactive 的情況下執行需驗證的命令。 欲了解更多資訊,請參閱 Session token cache locations

  1. 對於非互動情境,如 Docker 容器和自訂自動化,透過 environment 變數 提供憑證。

對於Azure Pipelines,請使用 NuGetAuthenticate@1 任務來驗證你的串流,再執行像 dotnet restoredotnet nuget push 這類指令。 如需詳細資訊,請參閱 使用 Azure Pipelines 還原 NuGet 套件

連接到資訊來源

請遵循下列步驟來設定您的專案,並連線到您的 Azure Artifacts 摘要。 請確定您已安裝 Azure Artifacts 認證提供者和最新版本的 NuGet,如必要條件中所述。

  1. 登入您的 Azure DevOps 組織,然後瀏覽至您的專案。

  2. 選取工件,然後從下拉功能表中選取您的提要。

  3. 選取 [連線至摘要],然後從 [NuGet] 區段中選取 dotnet

  4. 請遵循 Project 安裝程式中的指示來設定 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 檔案。

    螢幕快照顯示如何連線到 Azure DevOps Server 2020 和 2022 中的摘要。

發佈您的套件

從您的專案目錄執行下列命令,將套件發佈至 Azure Artifacts 摘要。 參數 --api-key 是必要的,但您可以在發佈至 Azure Artifacts 時使用任何字串值。

dotnet nuget push --source <FEED_NAME> --api-key <ANY_STRING> <PACKAGE_PATH>

下一步