Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
После создания пакета NuGet и nupkg-файла вы можете сделать пакет доступным для других разработчиков как общедоступным, так и частным образом. В этой статье описывается, как глобально предоставлять общий доступ к общедоступным пакетам с помощью nuget.org.
Вы также можете сделать частные пакеты доступными только для команды или организации, размещая их в общей папке, частном сервере NuGet или стороннем репозитории, например myget, ProGet, Nexus Repository или Artifactory. Дополнительные сведения см. в разделе Размещение собственных фидов NuGet. Сведения о публикации с помощью Azure Artifacts см. в статье «Публикация пакетов в NuGet.org».
Публикация в nuget.org
Чтобы опубликовать на nuget.org, войдите в nuget.org с помощью учетной записи Майкрософт и используйте её, чтобы создать бесплатную учетную запись на nuget.org. Следуйте инструкциям по добавлению новой отдельной учетной записи.
После получения учетной записи можно опубликовать пакет для nuget.org с помощью веб-портала nuget.org, dotnet CLI или NuGet версии 4.1.0 или более поздней версии. Вы также можете публиковать пакеты с помощью Azure Pipelines.
Отправка на веб-портал nuget.org
Чтобы отправить пакет на веб-сайт nuget.org, выполните следующие действия.
Выберите " Отправить " в верхнем меню в nuget.org, перейдите к пакету на компьютере и нажмите кнопку "Открыть".
Если идентификатор пакета уже существует в nuget.org, вы получите ошибку. Измените идентификатор пакета в проекте, перепакуйте и повторите попытку отправки.
Если имя пакета доступно, откроется раздел "Проверка ", чтобы просмотреть метаданные из манифеста пакета. Если вы включили файл readme в пакет, выберите "Предварительный просмотр ", чтобы убедиться, что все содержимое отрисовывается правильно.
Чтобы изменить любой из метаданных, измените файл проекта или nuspec-файл , перестройте, перепакуйте и отправьте еще раз.
Когда все сведения будут готовы, нажмите кнопку "Отправить".
Отправка с помощью командной строки
Чтобы отправить пакеты в nuget.org с помощью командной строки, можно использовать dotnet.exe либо версию nuget.exe 4.1.0 или более поздней версии, которая реализует необходимые протоколы NuGet. Дополнительные сведения см. в разделе "Протоколы NuGet".
Чтобы использовать любую командную строку, сначала необходимо получить ключ API из nuget.org.
Создание ключа API
Войдите в учетную запись nuget.org или создайте учетную запись , если у вас еще нет учетной записи .
Выберите имя пользователя в правом верхнем углу и выберите ключи API.
Выберите "Создать" и укажите имя ключа.
В разделе "Выбор областей" выберите "Отправить".
В разделе «Выбор пакетов»>Глобальный шаблон введите *.
Нажмите кнопку "Создать".
Выберите "Копировать", чтобы скопировать новый ключ.
Это важно
- Всегда сохраняйте секрет ключа API. Ключ API похож на пароль, позволяющий любому пользователю управлять пакетами от вашего имени. Удалите или повторно создайте ключ API, если он случайно обнаружен.
- Сохраните ключ в безопасном расположении, так как вы не сможете скопировать ключ позже. Если вы вернеесь на страницу ключа API, необходимо повторно создать ключ, чтобы скопировать его. Вы также можете удалить ключ API, если вы больше не хотите отправлять пакеты.
Определение области позволяет создавать отдельные ключи API для различных целей. Каждый ключ имеет срок действия, и вы можете ограничить ключ определенными пакетами или шаблонами glOB-объектов. Кроме того, каждый ключ применяется к определенным операциям: отправка новых пакетов и версий пакетов, отправка только новых версий пакетов или отмена списка.
Определяя область действия, можно создавать ключи API для разных пользователей, которые управляют пакетами для вашей организации, чтобы у них были только те разрешения, которые им необходимы.
Дополнительные сведения см. в разделе "Ключи API с областью действия".
Использование dotnet CLI
В папке, содержащей NUPKG-файл , выполните следующую команду. Укажите имя файла .nupkg и замените значение ключа ключом API.
dotnet nuget push Contoso.08.28.22.001.Test.1.0.0.nupkg --api-key qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 --source https://api.nuget.org/v3/index.json
Выходные данные показывают результаты процесса публикации:
Pushing Contoso.08.28.22.001.Test.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/nuget/authoring-best-practices#licensing.
Created https://www.nuget.org/api/v2/package/ 1221ms
Your package was pushed.
Дополнительные сведения см. в статье dotnet nuget push.
Замечание
Если вы хотите избежать выкладки вашего тестового пакета на nuget.org, вы можете отправить его на тестовый сайт nuget.org по адресу https://int.nugettest.org. Учтите, что пакеты, загруженные на int.nugettest.org, могут не сохраняться.
Использование интерфейса командной строки NuGet
В командной строке выполните следующую команду, заменив
<your_API_key>на ключ, который вы получили с nuget.org.nuget setApiKey <your_API_key>Эта команда сохраняет ключ API в конфигурации NuGet, поэтому вам не нужно снова вводить ключ API на том же компьютере.
Замечание
Этот ключ API не используется для аутентификации с частными каналами. Сведения об управлении учетными данными для проверки подлинности с помощью этих источников см. в команде nuget sources.
Отправьте пакет с помощью следующей команды:
nuget push YourPackage.nupkg -Source https://api.nuget.org/v3/index.json
Публикация с помощью Azure Pipelines
Пакеты можно отправлять в nuget.org с помощью Azure Pipelines в рамках процесса непрерывной интеграции или непрерывного развертывания (CI/CD). Дополнительные сведения см. в статье "Публикация пакетов NuGet с помощью Azure Pipelines".
Публикация подписанного пакета
Чтобы отправить подписанный пакет, необходимо сначала зарегистрировать сертификат , используемый для подписи пакета. Если вы не соответствуете требованиям к подписанному пакету, nuget.org отклоняет пакет.
Ограничения размера пакета
Nuget.org имеет ограничение размера пакета около 250 МБ. При отправке пакета, превышающего это ограничение, отображается следующая ошибка:
Файл пакета превышает ограничение размера. Повторите попытку.
Если такой пакет отправляется из командной строки, создается следующий результат:
RequestEntityTooLarge https://www.nuget.org/api/v2/package/ 13903ms
error: Response status code does not indicate success: 413 (The package file exceeds the size limit. Please try again.).
Если вы получаете эти ошибки, рассмотрите возможность изменения содержимого пакета, чтобы уменьшить его размер. Если вы упаковаете символы отладки в пакет, рассмотрите возможность их публикации отдельно. Другие ресурсы можно публиковать отдельно как один или несколько пакетов зависимостей, чтобы распространить их на небольшие блоки.
Проверка и индексирование пакетов
Пакеты, отправленные в nuget.org, проходят несколько проверок, таких как проверки вирусов, и существующие пакеты периодически сканируются. Когда пакет проходит все проверки, может потребоваться некоторое время, чтобы он был проиндексирован и появился в результатах поиска. Пока индексируется пакет, он отображается в разделе "Неподписанные пакеты" и отображается следующее сообщение на странице пакета:
После завершения проверки и индексирования вы получите сообщение электронной почты о том, что пакет был успешно опубликован. Если пакет не проходит проверку, страница пакета обновляется, чтобы отобразить связанную ошибку, и вы получите уведомление по электронной почте.
Проверка пакетов и индексирование обычно занимает менее 15 минут. Если публикация пакетов занимает больше времени, проверьте состояние nuget.org на status.nuget.org. Если все системы работают и пакет не публикуется в течение часа, обратитесь в nuget.org с помощью ссылки на службу поддержки контактов на странице пакета.
Чтобы просмотреть состояние пакета, выберите "Управление пакетами " под именем учетной записи в правом верхнем углу nuget.org и выберите пакет из опубликованных пакетов или неподписанных пакетов.
Управление владельцами пакетов на nuget.org
Владельцы пакетов имеют полные разрешения для пакета, включая добавление и удаление других владельцев и публикацию обновлений.
Хотя nuspec-файл пакета NuGet определяет авторов пакета, nuget.org не использует эти метаданные для определения владения. Вместо этого nuget.org назначает права владения пользователю, который публикует пакет: либо вошедшему в систему пользователю, загрузившему пакет, либо пользователю, чей ключ API был использован с dotnet push, nuget SetApiKey или nuget push.
Чтобы изменить владение пакетом, выполните приведенные действия.
Войдите в nuget.org с учетной записью, которая в настоящее время владеет пакетом.
Выберите имя учетной записи в правом верхнем углу, выберите Управление пакетами и разверните Опубликованные пакеты.
Выберите пакет, который требуется управлять, и в правой части страницы пакета выберите пункт "Управление пакетом".
На странице управления пакетами выберите "Владельцы".
Выполните одно из следующих действий:
Выберите "Удалить", чтобы удалить текущего владельца.
Добавьте владельца в раздел "Добавить владельца ", введя имя пользователя и сообщение, а затем нажмите кнопку "Добавить".
Это действие отправляет сообщение электронной почты новому совладельцу с ссылкой подтверждения. После подтверждения этот пользователь имеет полные разрешения на добавление и удаление владельцев. Пока не будет подтверждено, в разделе "Текущие владельцы" для этого человека отображается статус ожидания утверждения.
Чтобы передать владение, как при изменении владельца или публикации пакета под неправильной учетной записью, добавьте нового владельца. После подтверждения владения они могут удалить старого владельца из списка.
Чтобы назначить владение компании или группе, создайте учетную запись nuget.org с псевдонимом электронной почты, который пересылает письма соответствующим участникам команды. Например, различные пакеты Microsoft ASP.NET принадлежат учетным записям майкрософт и aspnet .
Иногда пакет может не иметь активного владельца. Например, исходный владелец может оставить компанию, которая произвела пакет. Если вы являетесь законным владельцем пакета и должны восстановить владение, используйте форму контакта на nuget.org, чтобы объяснить вашу ситуацию команде NuGet. Команда выполняет процесс проверки владения, включая попытку найти существующего владельца, и может отправить вам новое приглашение, чтобы стать владельцем пакета.