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://customsource
に foo.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 のプッシュに関するドキュメントを参照してください。
.NET