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.