Платформа поддержки пакетов

Платформа поддержки пакетов — это набор средств с открытым исходным кодом, который помогает применять исправления к существующим приложениям win32 для выполнения в контейнере MSIX, когда у вас нет доступа к исходному коду. Платформа поддержки пакетов помогает настроить приложения в соответствии с требованиями современных сред выполнения.

Ниже приведено несколько распространенных примеров, в которых удобно применять платформу поддержки пакетов.

  • Ваше приложение не может найти некоторые библиотеки DLL при запуске. Может потребоваться задать текущий рабочий каталог. Перед преобразованием в MSIX требуемый текущий рабочий каталог можно определить в исходном ярлыке.
  • Приложение записывает данные в папку установки. Обычно при этом в мониторе процессов отображаются ошибки "Отказано в доступе".
  • Приложению необходимо передать параметры в исполняемый файл при запуске. Здесь вы можете узнать больше о том, как выявить эту проблему, а здесь вы можете узнать больше о доступных конфигурациях.

Чтобы создать платформу поддержки пакетов, мы использовали технологию Detours — платформу с открытым исходным кодом, разработанную Microsoft Research (MSR), которая помогает выполнять подключения и перенаправления API.

Это упрощенная платформа с открытым кодом, с помощью которой можно быстро устранять неполадки с приложениями. Основанная на совместной работе многих участников, она также позволяет обращаться к сообществу пользователей по всему миру.

См. подробнее о применении исправлений среды выполнения к пакету MSIX с помощью платформы поддержки пакетов.

Краткий обзор платформы поддержки пакетов

Платформа поддержки пакетов содержит исполняемый файл, библиотеку DLL диспетчера среды выполнения и набор исправлений для среды выполнения.

Платформа поддержки пакетов

Вот как это работает. Вы создаете файл конфигурации, чтобы определить исправления, которые нужно применить к приложению. Затем вы изменяете пакет, чтобы определить исполняемый файл средства запуска платформы поддержки пакетов.

Когда пользователь запускает приложение, средство запуска платформы поддержки пакетов является первым исполняемым файлом. Он считывает файл конфигурации и внедряет исправления среды выполнения и библиотеку DLL диспетчера среды выполнения в процесс приложения. Диспетчер среды выполнения применяет исправление, когда это требуется для выполнения приложения в контейнере MSIX.

Внедрение библиотеки DLL платформы поддержки пакетов

Приступая к работе с платформой поддержки пакетов

Создав пакет для приложения, установите и запустите его, а также понаблюдайте за его поведением. Могут появиться сообщения об ошибке, которые помогут выявить проблемы с совместимостью. Вы также можете использовать Монитор процесса для выявления проблем.

Обнаружив проблему, можно просмотреть соответствующую страницу GitHub, чтобы получить исправление. Найдя нужное исправление, вы можете применить его к своему пакету. В этом пошаговом руководстве показано, как это сделать. Вы также узнаете, как использовать отладчик Visual Studio, чтобы поэтапно проверить работу приложения и убедиться, что исправление работает и что проблемы совместимости решены.

Если вы не можете найти исправление среды выполнения, которое устранит вашу проблему, его можно создать. Для этого вам нужно определить, какая функция вызывает сбой при запуске приложения в контейнере MSIX. Затем вам нужно создать альтернативные функции, которые должен вызвать диспетчер среды выполнения. Это позволит вам заменить реализацию функции, чтобы ее поведение соответствовало правилам работы с современными средами выполнения.

Кроме того, с помощью платформы поддержки пакетов можно выполнять сценарии для динамической настройки приложения в соответствии с пользовательской средой. Дополнительные сведения см. в этой статье.

Ограничения

Платформа поддержки пакетов не поддерживает переопределение реестра. Она предназначена для устранения проблем времени выполнения.

Данные и телеметрия

Платформа поддержки пакетов включает в себя функцию телеметрии, которая собирает данные об использовании и отправляет их в корпорацию Майкрософт, чтобы помочь улучшить наши продукты и услуги. Ознакомьтесь с заявлением о конфиденциальности корпорации Майкрософт, чтобы узнать больше. Тем не менее данные будут собираться только при выполнении обоих следующих условий:

  • На компьютере с Windows 10 используются двоичные файлы платформы поддержки пакетов из пакета NuGet.
  • Пользователь включил сбор данных на компьютере.

Пакет NuGet содержит подписанные двоичные файлы. Он будет собирать данные об использовании с компьютера. Данные телеметрии не собираются, если двоичные файлы были созданы локально путем клонирования репозитория или скачивания двоичных файлов напрямую.