Skip to content

Microsoft Store

Роман Зопиров edited this page Oct 29, 2026 · 2 revisions

Модуль Microsoft Store (mstore)

Модуль Microsoft Store взаимодействует напрямую с Microsoft Partner Center Dev Center Ingestion REST API v1.0 для полной автоматизации развёртывания приложений Windows (.msix, .msixupload, .zip).


Требования и авторизация

Для работы с API Partner Center необходимы:

  1. Учетная запись Partner Center: Активный профиль разработчика Windows.
  2. Приложение в Azure Active Directory: Привязанное к Partner Center в разделе Параметры учетной записи -> Управление пользователями -> Приложения Azure AD с ролью Менеджер (Manager).
  3. Application ID (Product ID): 12-значный буквенно-цифровой идентификатор зарезервированного продукта в Partner Center (например, 9NZXP5WR803J).
  4. Seller ID: Идентификатор продавца в Partner Center (например, 94042650).

Параметры авторизации:

Параметр Флаг CLI Переменная окружения Описание
App ID --app-id STORE_APP_ID Product ID приложения (например, 9NZXP5WR803J)
Tenant ID --tenant-id STORE_TENANT_ID Azure AD Directory (tenant) ID
Client ID --client-id STORE_CLIENT_ID Azure AD Application (client) ID
Client Secret --client-secret STORE_CLIENT_SECRET Секрет приложения Azure AD
Seller ID --seller-id SELLER_ID Partner Center Account ID

Команды модуля

Команды:
  publish       Загрузить пакет, синхронизировать метаданные и отправить на сертификацию
  status        Проверить текущий статус публикации и активных черновиков
  delete-draft  Удалить незавершенный черновик в статусе PendingCommit
  configure     Сохранить профиль авторизации в ~/.octo/mstore.json или .octopublish.json

1. Команда publish

Основная команда для пайплайнов непрерывного деплоя (CI/CD):

octopublish mstore publish \
  --package "./bin/Release/App_1.0.0.0_x64.msix" \
  --notes-dir "./packaging/whatsnew" \
  --desc-dir "./packaging/store/windows"

Автоматический рабочий процесс:

  1. Аутентификация в Azure AD OAuth 2.0 (login.microsoftonline.com).
  2. Запрос текущих сабмишенов приложения в Partner Center.
  3. Защита Safe Skip: Если текущий сабмишен находится на этапе сертификации (Certification) или публикации (Release), инструмент выводит [ПРОПУСК] и успешно завершается с кодом 0, предотвращая сбой сборки из-за конфликта HTTP 409 Conflict.
  4. Создание нового черновика (PendingCommit) или повторное использование существующего.
  5. Получение безопасного SAS URL хранилища Azure Blob Storage.
  6. Автоматическая инкапсуляция .msix в архив .zip (строгое требование Partner Center Ingestion API).
  7. Нормализация подписи SAS (+ в %2B) и блочная параллельная передача пакета с отображением прогресс-бара.
  8. Синхронизация описаний, заметок о релизе и скриншотов.
  9. Отправка сабмишена на официальную сертификацию Microsoft Store.

2. Команда status

Проверяет текущее состояние сабмишенов приложения:

octopublish mstore status --app-id "9NZXP5WR803J"

3. Команда delete-draft

Удаляет зависший черновик сабмишена, если предыдущая сборка была прервана:

octopublish mstore delete-draft --app-id "9NZXP5WR803J"

4. Команда configure

Интерактивный мастер для сохранения параметров на машине разработчика:

octopublish mstore configure

Параметры сохраняются в защищенном пользовательском файле ~/.octo/mstore.json.

Clone this wiki locally