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


Публикация из командной строки

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Кроссплатформенный интерфейс командной строки для Azure DevOps (tfx-cli) можно использовать для публикации расширения в Visual Studio Marketplace.

Дополнительные сведения см. в обзоре публикации, установки и совместного использования.

Необходимые условия

Получите интерфейс командной строки TFX из менеджера пакетов Node.js и создайте токен Microsoft Entra или личный токен доступа (PAT). Кроме того, если вы еще не сделали этого, настройте Издателя в Галерее.

Получите кроссплатформенный интерфейс командной строки для Azure DevOps

  1. Если у вас его нет, скачайте и установите NodeJS. Во время настройки убедитесь, что вы оставили выбрано Добавить в PATH.

  2. Откройте командную строку и введите npm i -g tfx-cli.

Если у вас уже установлен интерфейс командной строки TFX, можно обновить до последнего выпуска, выполнив npm up -g tfx-cli.

Публикация с помощью токена Microsoft Entra в качестве субъекта-службы

Также можно опубликовать расширение в качестве субъекта-службы.

  1. Добавьте субъект-службу в качестве участника в учетную запись издателя. Идентификатор учетной записи службы можно получить из профиля, используя Profiles - Get. Затем вы можете добавить учетную запись службы в качестве участника к издателю, используя идентификатор из предыдущего шага.

  2. Опубликуйте расширение через TFX CLI , используя сервисного принципала. Выполните следующую команду TFX CLI, чтобы использовать его токен доступа:

tfx extension publish --publisher my-publisher --vsix my-publisher.my-extension-1.0.0.vsix --auth-type pat -t <ENTRA_TOKEN>

Публикация через личный токен доступа

  1. Войдите в организацию (https:dev.azure.com/{organization}).

  2. На домашней странице откройте значок параметров пользователя, и выберите Профиль.

    Выбрать профиль после выбора значка параметров пользователя

  3. В разделе Безопасностьвыберите Личные маркеры доступа, а затем выберите новый маркер.

    Создайте свой новый личный маркер доступа

  4. Заполните форму:

    • Дайте токену имя
    • Выберите Все доступные организации, что является единственным значением, которое работает при публикации через CLI. Если выбрать только одну организацию, это приведет к ошибке, даже если ПАТ является допустимым
    • Выберите срок действия токена. Это необходимо, так как API публикации Visual Studio Marketplace работают вне контекста организации.
    • Задайте область доступа, связанную с этим маркером. Обязательно выберите область Marketplace (публикация). Эта область ограничивает маркер только возможностью публикации расширений в Marketplace.
    • Выберите Создать

    ..

  5. Скопируйте созданный личный маркер доступа. Не забудьте сохранить это в тайне.

    Скопируйте маркер и сохраните его секрет

После установки TFX CLI и получения вашего токена вы можете использовать это средство для упаковки и публикации вашего расширения.

  1. Откройте командную строку в корневом каталоге расширения.
  2. Выполните следующую команду, чтобы опубликовать расширение. При появлении запроса введите токен для аутентификации.
tfx extension publish --publisher <YOUR_PUBLISHER_ID> --manifest-js <YOUR_EXTENSION_MANIFEST> --share-with <ACCOUNT_NAME>

Потенциальные ошибки

Если расширение уже опубликовано, может появиться следующая ошибка:

Failed Request: Internal Server Error(500) - Version number must increase each time an extension is published. Extension: fabrikam.my-extension  Current version: 0.1.9  Updated version: 0.1.9

Вы можете добавить флаг --rev-version, чтобы автоматически увеличить версию исправления до в вашем расширении. Это также сохраняет новую версию в манифесте.

Заметка

Для команды publish доступны все параметры, доступные для create.

Пример

C:\vso-team-calendar>tfx extension publish --publisher publishFabrikam --manifest-js fabrikam.config.js --share-with fabrikam --rev-version
Copyright Microsoft Corporation
> Personal access token:
Checking if this extension is already published
It is, update the extension
Waiting for server to validate extension package...
Sharing extension with fabrikam.

=== Completed operation: publish extension ===
 - Packaging: C:\vso-team-calendar\fabrikam.team-calendar-0.2.6.vsix
 - Publishing: success
 - Sharing: shared with fabrikam