dotnet nuget push
Bu makale şunlar için geçerlidir: ✔️ .NET Core 3.1 SDK ve sonraki sürümler
Name
dotnet nuget push
- Bir paketi sunucuya göndererek yayımlar.
Özet
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
Description
dotnet nuget push
komutu bir paketi sunucuya iletir ve yayımlar. Gönderme komutu, sistemin NuGet yapılandırma dosyasında veya yapılandırma dosyaları zincirinde bulunan sunucu ve kimlik bilgisi ayrıntılarını kullanır. Yapılandırma dosyaları hakkında daha fazla bilgi için bkz. NuGet Davranışını Yapılandırma. NuGet'in varsayılan yapılandırması , %AppData%\NuGet\NuGet.config (Windows) veya $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS) yüklenip sürücünün kökünden başlayıp geçerli dizinle biten tüm nuget.config veya .nuget\nuget.config yüklenerek elde edilir.
komutu mevcut bir paketi iter. Paket oluşturmaz. Paket oluşturmak için kullanın dotnet pack
.
Hiyerarşik klasör yapısı
Bu komut, paketleri, performansı iyileştirmek için önerilen hiyerarşik bir klasör yapısında depolayabilir. Akışta hiyerarşik klasör yapısında en az bir paket varsa, paketleri yerel bir klasöre (akış nuget add
) yayımlarken hiyerarşik bir klasör yapısında depolar. Akışın içinde zaten hiyerarşik klasör yapılandırılmış bir paket varsa, dotnet nuget push
bu yapıya saygı gösterir. Bu nedenle, NuGet CLI yerine .NET CLI kullanarak yerel bir akışa yayımlamak istiyorsanız:
- İlk paketi yayımlamadan önce , %userprofile%.nuget\packages konumundaki genel paketler klasörünüze gidin ve paket kimliğinin kök klasörünü seçin. .NET standardı veya ASP.NET gibi bir çerçevenin parçası olmayan herhangi bir paket olabilir.
- Seçili paket klasörünü yerel akışın kök klasörüne kopyalayın.
- Paketinizi yerel akışta yayımlamak için kullanın
dotnet nuget push
. - Artık daha önce kopyaladığınız klasörü silebilir ve yerel akışınızda yayımlamak için kullanabilirsiniz
dotnet nuget push
.
Alternatif olarak, ilk paket için NuGet CLI'yı kullanın, ardından geri kalanı için kullanabilirsiniz dotnet nuget push
. Daha fazla bilgi için bkz. Yerel akışlar.
Bağımsız değişkenler
ROOT
Gönderilecek paketin dosya yolunu belirtir.
Seçenekler
-d|--disable-buffering
Bellek kullanımını azaltmak için HTTP(S) sunucusuna gönderilirken arabelleğe almayı devre dışı bırakır.
--force-english-output
Uygulamayı sabit, İngilizce tabanlı bir kültür kullanarak çalışmaya zorlar.
-?|-h|--help
komutunun nasıl kullanılacağına ilişkin bir açıklama yazdırır.
--interactive
Komutun durmasına ve kullanıcı girişini veya eylemini beklemesine izin verir. Örneğin, kimlik doğrulamasını tamamlamak için. .NET Core 3.0 SDK'dan itibaren kullanılabilir.
-k|--api-key <API_KEY>
Sunucunun API anahtarı.
-n|--no-symbols
Simgeleri göndermez (varsa bile).
--no-service-endpoint
Kaynak URL'ye "api/v2/package" eklemez.
-s|--source <SOURCE>
Sunucu URL'sini belirtir. NuGet bir UNC veya yerel klasör kaynağı tanımlar ve dosyayı HTTP kullanarak göndermek yerine oraya kopyalar.
Önemli
NuGet 3.4.2'den başlayarak, NuGet yapılandırma dosyası bir değer belirtmediği sürece bu zorunlu bir
DefaultPushSource
parametredir. Daha fazla bilgi için bkz. NuGet davranışını yapılandırma.--skip-duplicate
Bir HTTP(S) sunucusuna birden çok paket gönderilirken, diğer göndermelerin devam edebilmesi için 409 Çakışma yanıtı uyarı olarak kabul edilir.
-sk|--symbol-api-key <API_KEY>
Sembol sunucusunun API anahtarı.
-ss|--symbol-source <SOURCE>
Sembol sunucusu URL'sini belirtir.
-t|--timeout <TIMEOUT>
Sunucuya gönderme zaman aşımını saniyeler içinde belirtir. Varsayılan değer 300 saniyedir (5 dakika). 0 belirtilmesi varsayılan değeri uygular.
Örnekler
Api anahtarı kullanarak foo.nupkg dosyasını NuGet yapılandırma dosyasında belirtilen varsayılan gönderme kaynağına gönderin:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
Foo.nupkg dosyasını resmi NuGet sunucusuna göndererek bir API anahtarı belirtin:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
Foo.nupkg dosyasını özel gönderme kaynağına
https://customsource
göndererek bir API anahtarı belirtin:dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
Foo.nupkg dosyasını NuGet yapılandırma dosyasında belirtilen varsayılan gönderme kaynağına gönder:
dotnet nuget push foo.nupkg
Foo.symbols.nupkg dosyasını varsayılan sembol kaynağına gönder:
dotnet nuget push foo.symbols.nupkg
Foo.nupkg dosyasını NuGet yapılandırma dosyasında belirtilen varsayılan gönderme kaynağına 360 saniyelik zaman aşımıyla gönder:
dotnet nuget push foo.nupkg --timeout 360
Geçerli dizindeki tüm .nupkg dosyalarını NuGet yapılandırma dosyasında belirtilen varsayılan gönderme kaynağına gönder:
dotnet nuget push "*.nupkg"
Not
Bu komut işe yaramazsa, bunun nedeni SDK'nın eski sürümlerinde (.NET Core 2.1 SDK ve önceki sürümler) var olan bir hata olabilir. Bunu düzeltmek için SDK sürümünüzü yükseltin veya bunun yerine aşağıdaki komutu çalıştırın:
dotnet nuget push "**/*.nupkg"
Not
Kapsayan tırnak işaretleri, dosya globbing gerçekleştiren bash gibi kabuklar için gereklidir. Daha fazla bilgi için bkz. NuGet/Home#4393.
Http(S) sunucusu tarafından 409 Çakışma yanıtı döndürülse bile tüm .nupkg dosyalarını NuGet yapılandırma dosyasında belirtilen varsayılan gönderme kaynağına gönder:
dotnet nuget push "*.nupkg" --skip-duplicate
Geçerli dizindeki tüm .nupkg dosyalarını yerel akış dizinine gönder:
dotnet nuget push "*.nupkg" -s c:\mydir
Azure Artifacts'e gönderme için bkz. Azure Artifacts'in gönderme belgeleri.