Azure Artifacts フィードに最初のパッケージを発行する

Azure Artifacts を使用すると、開発者は 1 つのフィードからすべての依存関係を効率的に管理できます。 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. Artifacts を選択し、次に Create Feed を選択します。

  3. フィードのわかりやすい 名前 を指定し、フィードでパッケージを表示できるユーザーを定義するように 可視性 を設定します。 フィードの スコープ を定義し、パブリック ソースのパッケージを含める場合は、[ アップストリーム ソース ] チェックボックスをオンにします。

  4. 終わったら [作成] を選択します。

    Azure DevOps Services で新しいフィードを作成する方法を示すスクリーンショット。

  1. Azure DevOps コレクションにサインインし、プロジェクトに移動します。

  2. Artifacts を選択し、次に Create Feed を選択します。

  3. フィードのわかりやすい 名前 を指定し、フィードでパッケージを表示できるユーザーを定義するように 可視性 を設定します。 フィードの スコープ を定義し、パブリック ソースのパッケージを含める場合は、[ アップストリーム ソース ] チェックボックスをオンにします。

  1. 終わったら [作成] を選択します。

    Azure DevOps Server 2022 で新しいフィードを作成する方法を示すスクリーンショット。

パッケージを準備する

この例では、サンプルの .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資格情報プロバイダーを設定する

フィードで認証するには、まずAzure Artifacts資格情報プロバイダーをインストールする必要があります。 dotnet に含まれているツール インストーラーを使用して、次のコマンドを使用して CLI から資格情報プロバイダーをインストールできます。

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

リポジトリ レベルの nuget.config がAzure Artifactsソースのみを使用するように構成されている場合は、そのディレクトリの外部から install コマンドを実行するか、nuget.org をソースとして明示的に設定します。

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. --interactive を使用してコマンドを実行すると、dotnet がサインインを求めるプロンプトを表示できるようになります。 これは、ほとんどのローカル開発シナリオに推奨されるアプローチです。

対話型コマンドを実行する前に、プロジェクトが設定され、フィードが nuget.configに追加されていることを確認します。セットアップの詳細については、 プロジェクトのセットアップに関するページを参照してください。

プロジェクトが設定され、フィードに接続されたら、プロジェクト ディレクトリに移動して次のコマンドを実行します。

dotnet restore --interactive

このコマンドはユーザーをサインインさせ、セッション トークンを取得します。 サインインが成功した後は、キャッシュされたセッション トークンが有効なまま、 --interactive なしで認証済みコマンドを実行できます。 詳細については、「Session トークンキャッシュの場所を参照してください。

  1. Docker コンテナーやカスタムオートメーションなどの非対話型シナリオでは、environment 変数を使用して資格情報を指定します。

Azure Pipelinesの場合は、NuGetAuthenticate@1 タスクを使用して、dotnet restoredotnet nuget push などのコマンドを実行する前に、フィードに対して認証を行います。 詳細については、「Restore NuGet packages with Azure Pipelines」を参照してください。

フィードに接続する

プロジェクトを設定し、Azure Artifacts フィードに接続するには、次の手順に従います。 前提条件で説明されているように、Azure Artifacts 資格情報プロバイダーと最新バージョンの NuGet がインストールされていることを確認します。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. Artifactsを選択し、ドロップダウン メニューからフィードを選択します。

  3. Connect to feed を選択し、次に 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>

次のステップ