Ускорители

Акселератор предоставляет эффективный способ преобразования устаревших приложений (приложений) в формат MSIX. Она состоит из важных сведений о пакете (приложении); операционная система (ОС), в которой происходит преобразование; и шаги, необходимые для исправления пакета для правильного функционирования преобразованного MSIX.

Предпосылки

Чтобы попробовать акселераторы в предварительной версии сборки с ранним доступом, присоединитесь к программе MSIX Packaging Tool Insider.

Создание акселератора

Чтобы просмотреть структуру акселератора и использовать ее для создания собственного акселератора, ознакомьтесь с примерами акселераторов в репозитории MSIX-Labs GitHub.

Определения

  • PackageName: пакет — это приложение или программа (приложение Win32, WPF или Windows Forms) с устаревшим установщиком (exe, msi и т. д.), который преобразуется в формат MSIX.
  • PackageVersion: версии пакетов связаны с определенным выпуском. В некоторых случаях вы увидите совершенно сформированный номер семантического версионирования, а в других случаях вы можете увидеть что-то другое. Они могут быть основаны на датах или иметь другие символы со специфическим значением для пакета.
  • PublisherName: имя исходного издателя пакета.
  • EligibleForConversion: некоторые приложения запрещены для преобразования по соображениям безопасности, использования драйверов и т. д. Таким образом, этот флаг используется для определения возможности преобразования. Допустимые значения можно найти здесь.
  • ConversionStatus: определение состояния преобразования приложения. Допустимые значения можно найти здесь.
  • Подход к исправлению:
    • SequenceNumber: определяет порядковый номер шага исправления. Шаги для успешного преобразования приложения должны быть предоставлены последовательно.
    • Проблема:
      • Описание: текстовое описание фактической проблемы, возникной при преобразовании. Например, ошибки реестра или ошибки FileCreate в Procmon.
      • Ссылка: (необязательное поле) ссылку на документ, содержащий подробные сведения о проблеме.
    • Исправление:
      • FixType: конкретный тип шага. Пример. Если FixType — "Capability", необходимо добавить определенную возможность на этом этапе. Допустимые значения можно найти здесь.
      • Справочник. Ссылка на документ, содержащий подробные сведения об исправлении и способах его выполнения. Это поле является необязательным.
      • FixDetails: определение определенного типа исправления, необходимого для конкретного Объекта FixType. Пример. Если Fixtype — "Зависимость", то FixDetails будет иметь поле типа массива с именем "Зависимости", чтобы перечислить все зависимости, которые необходимо добавить для приложения. Варианты использования можно найти здесь.
  • MinimumPSFVersion: (Обязательно, только если atleast один из FixType использует PSF или PackageSupportFramework). Так как выпуски PSF являются обратно совместимыми, любая версия выше указанной версии будет работать.
  • Дополнительные комментарии: предоставить дополнительную информацию о преобразовании приложений, предназначенную исключительно для восприятия человеком. Это поле является необязательным.
  • Edition: Выпуск операционной системы. Пример — Windows 10 Корпоративная.
  • MinimumOSVersion: версия операционной системы. Пример — 21H1. Это поле означает, что любая версия, превышающая указанную версию ОС, будет работать.
  • MinimumOSBuild: версия сборки операционной системы. Пример : "19043.1165". Это поле означает, что любая сборка ОС больше указанной сборки ОС будет работать.
  • Архитектура: архитектура пакета (приложения). (32/64 бита)
  • MSIXConversionToolVersion: версия средства упаковки MSIX, используемая для преобразования. Пример : 1.2021.709.0;
  • AcceleratorVersion: версия используемого акселератора. В настоящее время последняя версия — 1.0.0.

Параметр командной строки для акселераторов

Для автоматического преобразования можно создать шаблон акселератора с помощью средства упаковки MSIX.

  1. Убедитесь, что в параметрах средства упаковки MSIX выбран параметр "Создать файл командной строки с каждым пакетом".

  2. Преобразуйте приложение с помощью средства упаковки MSIX, применяя акселератор в процессе преобразования.

  3. По умолчанию файл шаблона преобразования будет сохранен в том же расположении, что и пакет MSIX, если не указать другое расположение сохранения.

  4. Запустите MsixPackagingTool.exe в режиме с повышенными привилегиями.

  5. Выполните следующий командлет, чтобы использовать шаблон акселератора:

MsixPackagingTool.exe create-package --template c:\users\documents\AcceleratorTemplate.xml

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

Сценарии использования для ConversionStatus

  • Успешно. Исправление не требуется
ConversionStatus: Successful - No Fix Required
  • Успешно — требуется исправление
ConversionStatus: Successful - Fix Required

RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: App unable to install visual c++ dependency
    Fix:
      FixType: Dependency
      FixDetails:
        Dependencies:
          - Visual C++
  • Преобразовано с ошибками
ConversionStatus: Converted With Issues

RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Shortcut not captured
    Fix:
      FixType: EntryPoint 
      FixDetails:
        EntryPointIssue: ShortcutNotCaptured
        Solution:
          - Launch from start menu
  • Неудача
ConversionStatus: Failed

RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Registry errors in Procmon
  • Не подходит
EligibleForConversion: No - Driver Required

ConversionStatus: Not Eligible

Варианты использования для FixDetails

  • FixType: возможность
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Admin Access needed to run an app 
    Fix:
      FixType: Capability
      Reference: /windows/uwp/packaging/app-capability-declarations#:~:text=or%20Visual%20Studio.-,Elevation,-The%20allowElevation%20restricted
      FixDetails:
        Capabilities:
          - allowElevation
      
  • Тип исправления: зависимость
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: The app needs a 2008 C++ to be installed in the system
      Reference: https://forums.guru3d.com/threads/problem-running-afterburner.408768/
    Fix:
      FixType: Dependency
      Reference: https://forums.guru3d.com/threads/problem-running-afterburner.408768/
      FixDetails:
        Dependencies:
          - C++ 2008 runtime 
  • FixType: ПутьУстановки
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Required permissions were not granted to the VFS folder and launcher.exe was not available during msix launch
    Fix:
      FixType: InstallationPath
      Reference: /windows/msix/packaging-tool/create-app-package#package-information
      FixDetails:
        Path: C:/Users/User/AppData/Local
  • ТипИсправления: Пользовательский
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description:  Chromium is downloaded as zip (not exe or msi).
    Fix:
      FixType: Custom
      FixDetails:
        Solution:
          - MSIX Packaging Tool Installation Step, Unzip the chromium.zip and then launch chrome.exe.
  • FixType: PSF
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: There were create file errors in process monitor
    Fix:
      FixType: PSF
      Reference: https://github.com/Microsoft/MSIX-PackageSupportFramework/tree/master/fixups/FileRedirectionFixup
      FixDetails:
        PSFConfig:
          applications:
            - id: LINELAUNCHER
              executable: LINE/bin/LineLauncher.exe
              workingDirectory: LINE/bin/
          processes:
            - executable: LineLauncher
              fixups:
                - dll: FileRedirectionFixup.dll
                  config:
                    redirectedPaths:
                      packageRelative:
                        - base: LINE/Data/
                          patterns:
                            - .*\.tst
                        - base: LINE/bin/
                          patterns:
                            - .*
  • FixType: Услуги
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: MSIX Packaging Tool failed to convert to MSIX stating a service is running outside the package.
    Fix:
      FixType: Services
      FixDetails:
        Exclude:
          - CleanupPSvc
  • ТипИсправления: ТочкаВхода
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Shortcut not captured
      Reference: https://microsoft.visualstudio.com/DefaultCollection/OS/_workitems/edit/35877020
    Fix:
      FixType: EntryPoint 
      FixDetails:
        EntryPointIssue: ShortcutNotCaptured
        Solution:
          - Launch from start menu
  • ТипИсправления: ВиртуализацияУстановленногоРасположения
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Test Issue
    Fix:
      FixType: InstalledLocationVirtualization
      Reference: /uwp/schemas/appxpackage/uapmanifestschema/element-uap10-installedlocationvirtualization
      FixDetails:
        UpdateActionsAttributes:
          ModifiedItems: keep
          DeletedItems: reset
          AddedItems: keep
  • ТипИсправления: ПереопределениеПутиЗагрузчика
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: DLL not found 
    Fix:
      FixType: LoaderSearchPathOverride
      Reference: /uwp/schemas/appxpackage/uapmanifestschema/element-uap6-loadersearchpathoverride
      FixDetails:
        FolderPaths: 
          - VFS\ProgramFilesX64\LINE\lib
          - VFS\ProgramFilesX64\LINE\bin

Допустимые значения для EligibleForConversion

  • Да
  • нет
  • Нет — требуется драйвер

Принятые значения для ConversionStatus

  • Успешно. Исправление не требуется

  • Успешно — требуется исправление

  • Преобразовано с ошибками

  • Неудача

  • Не подходит

Отношение между EligibleForConversion и ConversionStatus

Допустимо для конверсии ConversionStatus (СтатусConversionStatus)
Да Успешно — исправление не требуется, успешно — исправление необходимо, преобразовано с проблемами
нет Сбой, не соответствует требованиям
Нет — требуется драйвер Не подходит

Принятые значения для FixType

Принятые значения Определения
Способность* Необходимые возможности (например, allowElevation, uiAccess и т. д.) для работы приложения MSIX. Добавление в AppManifest или страницу возможностей в средстве упаковки MSIX во время преобразования. Подробнее см. здесь.
Зависимость Необходимые зависимости (например, распространяемая версия C++ 2008 x86) для работы приложения MSIX. Для скачивания вне операционной системы.
Путь установки Используется для настройки расположения установщика exe/msi, если он устанавливает данные вне папки по умолчанию (Program Files). Путь необходимо добавить на странице "Сведения о пакете" в средстве упаковки MSIX во время преобразования. Подробнее см. здесь.
Обычай Исправления, которые необходимо выполнить вручную пользователем, чтобы исправить приложение MSIX. Например: изменение последовательности идентификатора приложения в манифесте приложения.
PSF* Добавление исправлений платформы поддержки пакетов (например: FileRedirectionFixup) для исправления приложения MSIX. Пользователь должен создать config.json и добавить его, и другие необходимые библиотеки dll, в пакет во время преобразования. Подробнее см. здесь. Автор акселератора должен предоставить yaml-эквивалент для config.json в поле PSFConfig.
Услуги Службы, которые необходимо включить или исключить, чтобы приложение MSIX работало. Необходимо указать в отчете службы средства упаковки MSIX во время преобразования. Подробнее см. здесь.
Точка входа Чтобы устранить проблемы, связанные с EntryPoint (например: ShortcutNotCaptured). Подробнее см. здесь.
УстановкаLocationVirtualization* Это расширение, которое перенаправляет все записи из каталога установки приложения в папку данных приложения. Дополнительные сведения см. здесь и здесь . Значения по умолчанию для ModifiedItems, DeletedItems и AddedItems — сохранить, сбросить и сохранить соответственно.
LoaderSearchPathOverride* Это расширение, которое позволяет разработчику приложений указывать путь в пакете приложения относительно корневого пути пакета приложения, который должен быть включен в путь поиска загрузчика для процессов приложения. Автор акселератора должен предоставить список путей, которые нужно включить. Подробнее см. здесь.

Замечание

Принятые типы исправлений, помеченные звездочкой (*) выше, автоматически поддерживаются средством упаковки MSIX.