Поделиться через


Push-отправка dotnet nuget

Эта статья относится к: ✔️ пакету SDK для .NET Core 3.1 и более поздних версий

Имя

dotnet nuget push — отправляет пакет на сервер и публикует его.

Краткие сведения

dotnet nuget push [<ROOT>] [--allow-insecure-connections] [-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>]
    [--configfile <FILE>]

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, а не интерфейса командной строки NuGet:

  • Перед публикацией первого пакета перейдите в папку глобальных пакетов в %userprofile%.nuget\packages и выберите корневую папку идентификатора пакета. Это может быть любой пакет, который не является частью платформы, например .NET standard или ASP.NET.
  • Скопируйте выбранную папку пакета в корневую папку локального веб-канала.
  • Используется dotnet nuget push для публикации пакета в локальном веб-канале.
  • Теперь вы можете удалить папку, скопированную ранее, и вы можете свободно использовать dotnet nuget push для публикации в локальном веб-канале.

Кроме того, используйте интерфейс командной строки NuGet для первого пакета, а затем можно использовать dotnet nuget push для остальных. Дополнительные сведения см. в разделе "Локальные каналы".

Аргументы

  • ROOT

    Указывает путь к файлу для отправки пакета.

Опции

  • --allow-insecure-connections

    Позволяет отправлять в источники HTTP (небезопасные).

  • -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 как предупреждение, чтобы другие push-сообщения могли продолжаться.

  • -sk|--symbol-api-key <API_KEY>

    Ключ API для сервера символов.

  • -ss|--symbol-source <SOURCE>

    Указывает URL-адрес сервера символов.

  • -t|--timeout <TIMEOUT>

    Указывает время ожидания отправки на сервер в секундах. По умолчанию используется значение 300 секунд (5 минут). При указании 0 применяется значение по умолчанию.

  • --configfile

    Файл конфигурации NuGet (nuget.config), который будет использоваться. Если этот параметр указан, будут использоваться только параметры из этого файла. Если не указано, будет использоваться иерархия файлов конфигурации из текущего каталога. Дополнительные сведения см. в статье Распространенные конфигурации NuGet.

Примеры

  • Отправьте 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 в пользовательский источник https://customsourcepush-уведомлений, указав ключ 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, даже если ответ на конфликт 409 возвращается сервером HTTP(S):

    dotnet nuget push "*.nupkg" --skip-duplicate
    
  • Отправьте все Nupkg-файлы в текущем каталоге в локальный каталог веб-канала:

    dotnet nuget push "*.nupkg" -s c:\mydir
    
  • Дополнительные сведения о отправке в azure Artifacts см. в документации по отправке артефактов Azure.