dotnet nuget push
Ten artykuł dotyczy: ✔️ zestaw .NET Core 3.1 SDK i nowsze wersje
Nazwa
dotnet nuget push
— Wypycha pakiet do serwera i publikuje go.
Streszczenie
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
Opis
Polecenie dotnet nuget push
wypycha pakiet na serwer i publikuje go. Polecenie wypychania używa szczegółów serwera i poświadczeń znalezionych w pliku konfiguracji NuGet systemu lub łańcuchu plików konfiguracji. Aby uzyskać więcej informacji na temat plików konfiguracji, zobacz Konfigurowanie zachowania NuGet. Domyślna konfiguracja narzędzia NuGet jest uzyskiwana przez załadowanie pliku %AppData%\NuGet\NuGet.config (Windows) lub $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS), a następnie załadowanie dowolnego nuget.config lub nuget\nuget.config rozpoczynającego się od katalogu głównego i kończącego się w bieżącym katalogu.
Polecenie wypycha istniejący pakiet. Nie tworzy pakietu. Aby utworzyć pakiet, użyj polecenia dotnet pack
.
Hierarchiczna struktura folderów
To polecenie może przechowywać pakiety w hierarchicznej strukturze folderów, co jest zalecane do optymalizacji wydajności. Przechowuje pakiety w strukturze folderów hierarchicznych podczas publikowania w folderze lokalnym (kanale informacyjnym), podobnie jak nuget add
w przypadku, gdy w strukturze folderów hierarchicznych znajduje się co najmniej jeden pakiet. Jeśli źródło danych ma już w nim hierarchiczny pakiet ustrukturyzowany folderu, dotnet nuget push
uwzględnia strukturę. Jeśli więc chcesz opublikować w lokalnym kanale informacyjnym przy użyciu interfejsu wiersza polecenia platformy .NET zamiast interfejsu wiersza polecenia NuGet:
- Przed opublikowaniem pierwszego pakietu przejdź do folderu pakietów globalnych w folderze %userprofile%.nuget\packages i wybierz folder główny identyfikatora pakietu. Może to być dowolny pakiet, który nie jest częścią struktury, takiej jak .NET Standard lub ASP.NET.
- Skopiuj wybrany folder pakietu do folderu głównego lokalnego kanału informacyjnego.
- Użyj polecenia
dotnet nuget push
, aby opublikować pakiet w lokalnym kanale informacyjnym. - Teraz możesz usunąć wcześniej skopiowany folder i można go swobodnie użyć
dotnet nuget push
do opublikowania w lokalnym kanale informacyjnym.
Alternatywnie użyj interfejsu wiersza polecenia NuGet dla pierwszego pakietu, a następnie możesz użyć dotnet nuget push
go w pozostałej części. Aby uzyskać więcej informacji, zobacz Lokalne źródła danych.
Argumenty
ROOT
Określa ścieżkę pliku do pakietu do wypchnięcia.
Opcje
-d|--disable-buffering
Wyłącza buforowanie podczas wypychania do serwera HTTP(S), aby zmniejszyć użycie pamięci.
--force-english-output
Wymusza uruchomienie aplikacji przy użyciu niezmiennej kultury opartej na języku angielskim.
-?|-h|--help
Wyświetla opis sposobu używania polecenia.
--interactive
Umożliwia zatrzymanie polecenia i oczekiwanie na wprowadzenie lub działanie użytkownika. Na przykład w celu ukończenia uwierzytelniania. Dostępny od zestawu .NET Core 3.0 SDK.
-k|--api-key <API_KEY>
Klucz interfejsu API dla serwera.
-n|--no-symbols
Nie wypycha symboli (nawet jeśli istnieją).
--no-service-endpoint
Nie dołącza "api/v2/package" do źródłowego adresu URL.
-s|--source <SOURCE>
Określa adres URL serwera. Narzędzie NuGet identyfikuje źródło UNC lub folder lokalny i po prostu kopiuje tam plik zamiast wypychać go przy użyciu protokołu HTTP.
Ważne
Począwszy od nuGet 3.4.2, jest to obowiązkowy parametr, chyba że plik konfiguracji NuGet określa
DefaultPushSource
wartość. Aby uzyskać więcej informacji, zobacz Konfigurowanie zachowania narzędzia NuGet.--skip-duplicate
Podczas wypychania wielu pakietów do serwera HTTP traktuje dowolną odpowiedź powodującą konflikt 409 jako ostrzeżenie, aby inne wypychania mogły kontynuować.
-sk|--symbol-api-key <API_KEY>
Klucz interfejsu API dla serwera symboli.
-ss|--symbol-source <SOURCE>
Określa adres URL serwera symboli.
-t|--timeout <TIMEOUT>
Określa limit czasu wypychania do serwera w sekundach. Wartość domyślna to 300 sekund (5 minut). Określenie wartości 0 stosuje wartość domyślną.
Przykłady
Wypchnij plik foo.nupkg do domyślnego źródła wypychania określonego w pliku konfiguracji NuGet przy użyciu klucza interfejsu API:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
Wypychanie pliku foo.nupkg do oficjalnego serwera NuGet, określając klucz interfejsu API:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
Wypychanie pliku foo.nupkg do niestandardowego źródła
https://customsource
wypychania , określając klucz interfejsu API:dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
Wypchnij plik foo.nupkg do domyślnego źródła wypychania określonego w pliku konfiguracji NuGet:
dotnet nuget push foo.nupkg
Wypchnij plik foo.symbols.nupkg do domyślnego źródła symboli:
dotnet nuget push foo.symbols.nupkg
Wypchnij plik foo.nupkg do domyślnego źródła wypychania określonego w pliku konfiguracji NuGet z limitem czasu 360 sekund:
dotnet nuget push foo.nupkg --timeout 360
Wypchnij wszystkie pliki nupkg w bieżącym katalogu do domyślnego źródła wypychania określonego w pliku konfiguracji NuGet:
dotnet nuget push "*.nupkg"
Uwaga
Jeśli to polecenie nie działa, może to być spowodowane usterką, która istniała w starszych wersjach zestawu SDK (zestaw SDK platformy .NET Core 2.1 i starsze wersje). Aby rozwiązać ten problem, uaktualnij wersję zestawu SDK lub uruchom następujące polecenie:
dotnet nuget push "**/*.nupkg"
Uwaga
Cudzysłowy są wymagane dla powłok, takich jak powłoki bash, które wykonują globbing plików. Aby uzyskać więcej informacji, zobacz NuGet/Home#4393.
Wypchnij wszystkie pliki nupkg do domyślnego źródła wypychania określonego w pliku konfiguracji NuGet, nawet jeśli odpowiedź powodująca konflikt 409 jest zwracana przez serwer HTTP(S):
dotnet nuget push "*.nupkg" --skip-duplicate
Wypchnij wszystkie pliki nupkg w bieżącym katalogu do katalogu lokalnego źródła danych:
dotnet nuget push "*.nupkg" -s c:\mydir
Aby wypchnąć do usługi Azure Artifacts, zobacz dokumentację wypychania usługi Azure Artifacts.