コマンド ライン (NuGet.exe) から NuGet パッケージを発行する

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

この記事では、NuGet コマンド ライン インターフェイスを使用してプロジェクトを設定し、NuGet パッケージを発行する方法について説明します。

前提 条件

製品 要件
Azure DevOps - Azure DevOps 組織
- Azure DevOps プロジェクト
- Azure Artifacts フィード
- nuget.exe バージョン 4.8.0.5385 以降をダウンロードしてインストールします。 キャンセルとタイムアウトに関する重要なバグ修正を含む NuGet 5.5.x 以降をお勧めします。

Azure Artifacts資格情報プロバイダーを設定する

Azure Artifacts資格情報プロバイダーを使用すると、Azure Artifacts フィードへのセキュリティで保護された認証が可能になります。 nuget.exeで使用するには、まず NuGet のプラグイン検索パスに追加する必要があります。 詳細については、「 プラグインのインストールと検出」を参照してください。 プラグインが追加されたら、オペレーティング システムのインストール手順に従います。

Azure Artifacts資格情報プロバイダーをインストールするには、次のいずれかの方法を使用します。

手動インストール

  1. 最新の Microsoft.NetFx48.NuGet.CredentialProvider.zip リリースをダウンロードします。

  2. ZIP ファイルを抽出します。

  3. 抽出したアーカイブからnetfx%UserProfile%/.nuget/plugins/ フォルダーをコピーします。 nuget.exe の互換性のためには、 netfx フォルダーが必要です。

ヘルパー スクリプトを使用してインストールする

または、自動化されたヘルパー スクリプトを使用して、合理化されたインストールを行うことができます。 PowerShell 5.1 以降があることを確認し、次を実行します。

iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) } -AddNetfx"

詳細については、Azure Artifacts 資格情報プロバイダー リポジトリを参照してください。

フィードに接続する

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

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

  3. [フィードに接続する] を選択してから、左側のナビゲーション ペインから NuGet.exe を選択します。

  4. .csproj または .sln ファイルと同じフォルダーに、nuget.config ファイルをプロジェクトに追加します。 指定した XML スニペットをファイルに貼り付けます。 スニペットは次のようになります。

    • 組織スコープのフィード:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
    • プロジェクト スコープのフィード:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. Azure DevOps サーバーにサインインし、プロジェクトに移動します。

  2. [Artifacts] を選択し、その後フィードを選択します。

  3. [フィード に接続]選択し、左側のナビゲーション ウィンドウから [NuGet.exe] を選択します。

  4. Project のセットアップ セクションの手順に従ってフィードに接続します。

同じ組織内のフィードにパッケージを発行する

手記

フィードにパッケージを発行するには、 フィードパブリッシャー (共同作成者) 以上である必要があります。 詳細については、 権限の管理 を参照してください。

次のコマンドを実行して、パッケージをフィードに発行します。 プレースホルダーを適切な値に置き換えます。

nuget push <PACKAGE_PATH> -src https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json -ApiKey <ANY_STRING>

例の:

nuget push MyPackage.5.0.2.nupkg -src https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json -ApiKey AZ

手記

api-key は必須ですが、Azure Artifacts フィードに発行するときに、任意の文字列を値として指定できます。

別の組織のフィードにパッケージを発行する

NuGet パッケージを別の Azure DevOps 組織のフィードに発行するには、まずターゲット組織で個人用アクセス トークン (PAT) を作成する必要があります。

  1. ターゲット フィードをホストしている組織に移動し、[パッケージ化]> スコープで 個人用アクセス トークン (PAT) を作成します。

  2. 次のコマンドを実行して、パッケージ ソースを nuget.config ファイルに追加します。 これにより、PATが nuget.config ファイルに追加されます。 このファイルを安全な場所に保存し、ソース管理にチェックインしないようにします。

    nuget sources Add -Name <SOURCE_NAME> -Source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json -UserName <USER_NAME> -Password <PERSONAL_ACCESS_TOKEN> -config <PATH_TO_NUGET_CONFIG_FILE>
    
  3. 次のコマンドを実行してパッケージを発行します。

    nuget push <PACKAGE_PATH> -src <SOURCE_NAME> -ApiKey <ANY_STRING>
    

例の:

nuget sources Add -Name "MySource" -Source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json -UserName MyUserName -Password YourPersonalAccessToken -config ./nuget.config
nuget push nupkgs/mypackage.1.1.8.nupkg -src MySource -ApiKey AZ

手記

組織でファイアウォールまたはプロキシ サーバーを使用している場合は、Azure Artifacts ドメイン URL と IP アドレス 許可していることを確認します。