Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья относится к: ✔️ пакету 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://customsource
push-уведомлений, указав ключ 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.