dotnet nuget push
Эта статья относится к: ✔️ пакету SDK для .NET Core 3.1 и более поздних версий
name
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
отправляет пакет на сервер и публикует его. Команда push использует сервер и учетные данные, указанные в системном файле конфигурации NuGet или цепочке файлов конфигурации. См. дополнительные сведения о файлах конфигурации в статье о настройке поведения NuGet. Конфигурацию NuGet по умолчанию можно получить, загрузив файл %AppData%\NuGet\NuGet.config (Windows) или $HOME/.nuget/NuGet/NuGet.Config (Linux и macOS). Затем нужно загрузить все файлы nuget.config или .nuget\nuget.config, начиная с корневого каталога диска и заканчивая текущим каталогом.
Команда отправляет существующий пакет. При этом пакет не создается. Для создания пакета используйте dotnet pack
.
Иерархическая структура папок
Эта команда может хранить пакеты в иерархической структуре папок, что рекомендуется для оптимизации производительности. При публикации в локальной папке (веб-канале) пакеты хранятся в иерархической структуре папок, например nuget add
, если в веб-канале уже есть хотя бы один пакет, который находится в иерархической структуре папок. Если в веб-канале уже есть иерархический пакет, структурированный в папке, dotnet nuget push
учитывается эта структура. Поэтому, если вы хотите опубликовать в локальном веб-канале с помощью .NET CLI вместо Интерфейса командной строки NuGet:
- Перед публикацией первого пакета перейдите в папку глобальных пакетов в папке %userprofile%.nuget\packages и выберите корневую папку идентификатора пакета. Это может быть любой пакет, который не является частью платформы, например .NET Standard или ASP.NET.
- Скопируйте выбранную папку пакета в корневую папку локального веб-канала.
- Используйте
dotnet nuget push
для публикации пакета в локальном веб-канале. - Теперь вы можете удалить ранее скопированную папку и использовать ее для публикации в локальном веб-канале
dotnet nuget push
.
Кроме того, можно использовать Интерфейс командной строки NuGet для первого пакета, а затем — dotnet nuget push
для остальных. Дополнительные сведения см. в разделе Локальные веб-каналы.
Аргументы
ROOT
Указывает путь к файлу пакета для отправки.
Параметры
-d|--disable-buffering
Отключает буферизацию при передаче данных на сервер HTTP(S), чтобы снизить использование памяти.
--force-english-output
Принудительно запускает приложение с использованием инвариантного английского языка и региональных параметров.
-?|-h|--help
Выводит описание использования команды.
--interactive
Позволяет команде остановиться и дождаться, пока пользователь выполнит действие или введет данные. Например, чтобы завершить проверку подлинности. Доступно, начиная с пакета SDK для .NET Core 3.0.
-k|--api-key <API_KEY>
Ключ API для сервера.
-n|--no-symbols
Не передает символы (даже если они присутствуют).
--no-service-endpoint
Не добавляет "api/v2/package" в исходный URL-адрес.
-s|--source <SOURCE>
Определяет URL-адрес сервера. NuGet определяет источник в формате UNC или локальную папку и просто копирует файл вместо отправки через HTTP.
Важно!
Начиная с NuGet 3.4.2, этот параметр является обязательным, если в файле конфигурации NuGet не указано значение
DefaultPushSource
. Дополнительные сведения см. в статье Configuring NuGet behavior (Настройка поведения NuGet).--skip-duplicate
При отправке нескольких пакетов на СЕРВЕР HTTP(S) любой ответ на конфликт 409 обрабатывается как предупреждение, чтобы другие отправки могли продолжаться.
-sk|--symbol-api-key <API_KEY>
Ключ API для сервера символов.
-ss|--symbol-source <SOURCE>
Указывает URL-адрес сервера символов.
-t|--timeout <TIMEOUT>
Указывает время ожидания для передачи на сервер в секундах. Значение по умолчанию — 300 секунд (5 минут). При указании 0 применяется значение по умолчанию.
Примеры
Отправляет foo.nupkg в источник push-уведомлений по умолчанию, указанный в файле конфигурации NuGet, используя ключ API:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
Отправляет foo.nupkg на официальный сервер NuGet, предоставляя ключ API:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
Отправляет foo.nupkg в пользовательский источник push-уведомлений
https://customsource
, предоставляя ключ API:dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
Отправляет foo.nupkg в источник push-уведомлений по умолчанию, указанный в файле конфигурации NuGet:
dotnet nuget push foo.nupkg
Отправляет foo.symbols.nupkg в источник символов по умолчанию:
dotnet nuget push foo.symbols.nupkg
Отправляет foo.nupkg в источник push-уведомлений по умолчанию, указанный в файле конфигурации NuGet, с временем ожидания 360 с:
dotnet nuget push foo.nupkg --timeout 360
Отправляет все файлы NUPKG из текущего каталога в источник push-уведомлений по умолчанию, указанный в файле конфигурации NuGet:
dotnet nuget push "*.nupkg"
Примечание
Если эта команда не работает, возможно, это связано с ошибкой, которая существовала в более старых версиях пакета SDK (пакет SDK для .NET Core 2.1 и более ранних версий). Чтобы устранить эту проблему, обновите версию пакета SDK или выполните следующую команду:
dotnet nuget push "**/*.nupkg"
Примечание
Закрывающие кавычки необходимы для оболочек, таких как bash, выполняющих файл глобализации. Дополнительные сведения см. на странице NuGet/Home#4393.
Отправляет все файлы NUPKG в источник push-уведомлений по умолчанию, указанный в файле конфигурации NuGet, даже если сервер HTTP (S) возвращает в ответе конфликт 409:
dotnet nuget push "*.nupkg" --skip-duplicate
Отправляет все файлы NUPKG из текущего каталога в каталог локального веб-канала:
dotnet nuget push "*.nupkg" -s c:\mydir
Сведения о принудительной отправке в Azure Artifacts см. в документации по отправке azure Artifacts.