dotnet nuget push

この記事の対象: ✔️ .NET Core 3.1 SDK 以降のバージョン

名前

dotnet nuget push - パッケージをサーバーにプッシュして発行します。

構文

dotnet nuget push [<ROOT>] [-d|--disable-buffering] [--force-english-output]
    [--interactive] [-k|--api-key <API_KEY>] [-n|--no-symbols]
    [--no-service-endpoint] [-s|--source <SOURCE>] [--skip-duplicate]
    [-sk|--symbol-api-key <API_KEY>] [-ss|--symbol-source <SOURCE>]
    [-t|--timeout <TIMEOUT>]

dotnet nuget push -h|--help

説明

dotnet nuget push コマンドは、パッケージをサーバーにプッシュして発行します。 プッシュ コマンドでは、システムの NuGet 構成ファイル、または構成ファイルのチェーンで検出されたサーバーと資格情報の詳細を使用します。 構成ファイルの詳細については、「Configuring NuGet Behavior」 (NuGet 動作を構成する) をご覧ください。 NuGet の既定の構成は、 %AppData%\NuGet\NuGet.config (Windows) または $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS) を読み込み、次にドライブのルートから開始され、現在のディレクトリで終わる、任意の nuget.config または .nuget\nuget.config を読み込むことによって取得されます。

このコマンドにより、既存のパッケージがプッシュされます。 パッケージは作成されません。 パッケージを作成するには、dotnet pack を使用します。

階層フォルダー構造

このコマンドではパッケージを階層フォルダー構造に格納できるため、パフォーマンスを最適化することをお勧めします。 階層フォルダー構造にあるフィードに 1 つ以上のパッケージが既に存在する場合、nuget add と同様に、ローカル フォルダー (フィード) への発行時にパッケージを階層フォルダー構造に格納します。 フィードに階層フォルダー構造のパッケージが既に含まれている場合は、dotnet nuget push でその構造が考慮されます。 そのため、NuGet CLI ではなく .NET CLI を使用してローカル フィードに発行する場合は、次のようにします。

  • 最初のパッケージを発行する前に、グローバル パッケージ フォルダー (%userprofile%.nuget\packages) に移動し、パッケージ ID のルート フォルダーを選択します。.NET Standard や ASP.NET など、フレームワークの一部ではない任意のパッケージを指定できます。
  • 選択したパッケージ フォルダーをローカル フィードのルート フォルダーにコピーします。
  • dotnet nuget push を使用して、パッケージをローカル フィードに発行します。
  • 以前コピーしたフォルダーを削除できるようになり、dotnet nuget push を自由に使用してローカル フィードに発行できます。

または、最初のパッケージに NuGet CLI を使用してから、残りのパッケージに dotnet nuget push を使用することもできます。 詳細については、ローカル フィードに関するページをご覧ください。

引数

  • ROOT

    プッシュされるパッケージのファイル パスを指定します。

オプション

  • -d|--disable-buffering

    メモリ使用量を削減するために、HTTP(S) サーバーにプッシュするときのバッファリングを無効にします。

  • --force-english-output

    インバリアントの英語ベースのカルチャを使用して、アプリケーションの実行を強制します。

  • -?|-h|--help

    コマンドの使用方法を示した説明を出力します。

  • --interactive

    コマンドを停止して、ユーザーの入力または操作のために待機させることができます。 たとえば、認証を完了する場合があります。 .NET Core 3.0 SDK 以降で使用できます。

  • -k|--api-key <API_KEY>

    サーバーの API キーです。

  • -n|--no-symbols

    シンボルをプッシュしません (存在する場合でも)。

  • --no-service-endpoint

    ソース URL に "api/v2/package" を追加しません。

  • -s|--source <SOURCE>

    サーバー URL を指定します。 NuGet によって UNC またはローカル フォルダー ソースが識別され、HTTP を使用してファイルがプッシュされるのではなく、単にそこにファイルがコピーされます。

    重要

    NuGet 3.4.2 以降では、NuGet 構成ファイルで DefaultPushSource 値が指定されていない限り、これは必須パラメーターです。 詳しくは、「NuGet の動作の構成」をご覧ください。

  • --skip-duplicate

    複数のパッケージを HTTP(S) サーバーにプッシュする場合は、他のプッシュを続行できるように、すべての 409 Conflict 応答を警告として扱います。

  • -sk|--symbol-api-key <API_KEY>

    シンボル サーバーの API キーです。

  • -ss|--symbol-source <SOURCE>

    シンボル サーバーの URL を指定します。

  • -t|--timeout <TIMEOUT>

    秒単位でサーバーにプッシュする場合のタイムアウトを指定します。 既定値は 300 秒 (5 分) です。 0 を指定すると、既定値が適用されます。

使用例

  • API キーを使用して、NuGet 構成ファイルで指定されている既定のプッシュ ソースに foo.nupkg をプッシュします。

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
    
  • API キーを指定して、公式 NuGet サーバーに foo.nupkg をプッシュします。

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
    
  • API キーを指定して、カスタム プッシュ ソース https://customsourcefoo.nupkg をプッシュします。

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
    
  • NuGet 構成ファイルで指定されている既定のプッシュ ソースに foo.nupkg をプッシュします。

    dotnet nuget push foo.nupkg
    
  • 既定のシンボル ソースに foo.symbols.nupkg をプッシュします。

    dotnet nuget push foo.symbols.nupkg
    
  • NuGet 構成ファイルで指定されている既定のプッシュ ソースに foo.nupkg を 360 秒のタイムアウトでプッシュします。

    dotnet nuget push foo.nupkg --timeout 360
    
  • NuGet 構成ファイルで指定されている既定のプッシュ ソースに、現在のディレクトリにあるすべての .nupkg ファイルをプッシュします。

    dotnet nuget push "*.nupkg"
    

    注意

    このコマンドがうまくいかない場合は、古いバージョンの SDK (.NET Core 2.1 SDK 以前のバージョン) に存在したバグが原因である可能性があります。 これを解決するには、SDK のバージョンをアップグレードするか、代わりに次のコマンドを実行します: dotnet nuget push "**/*.nupkg"

    注意

    ファイル グロビングを実行する bash など、シェルには引用符が必須です。 詳細については、NuGet/Home#4393 を参照してください。

  • HTTP(S) サーバーによって競合応答 409 が返された場合でも、NuGet 構成ファイルで指定されている既定のプッシュ ソースにすべての .nupkg ファイルをプッシュします。

    dotnet nuget push "*.nupkg" --skip-duplicate
    
  • ローカル フィード ディレクトリに現在のディレクトリ内のすべての .nupkg ファイルをプッシュします。

    dotnet nuget push "*.nupkg" -s c:\mydir
    
  • Azure Artifacts へのプッシュについては、Azure Artifacts のプッシュに関するドキュメントを参照してください。