Знакомство с установщиком

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

  • У приложения есть служба. Мы поддерживаем преобразование приложений со службами, но важно учитывать ограничения для преобразования службы. После преобразования вам потребуется повышение прав администратора для установки MSIX, содержащей службу. Приложение с службами, начиная с версии 1.2019.1220.0 средства упаковки MSIX, можно развернуть MSIX с службами, начиная с весны 2020 г. в Windows 10.

  • Для установщика требуется перезапуск. Если для установщика требуется перезапуск, это поддерживается в средстве упаковки MSIX, начиная с версии 1.2019.701.0. Если установщик возвращает необычный код выхода, чтобы указать, что требуется перезапуск, необходимо добавить его в раздел кодов завершения перезапуска параметров средства упаковки MSIX.

  • Для приложения .NET требуется версия .NET Framework более ранняя, чем 4.6.2. При упаковке приложения .NET рекомендуется, чтобы для него использовалась платформа .NET Framework 4.6.2 или более поздней версии. Возможность установки и запуска упакованных классических приложений впервые появилась в Windows 10 версии 1607 (также именуемой юбилейным обновлением). Эта версия ОС включает в себя .NET Framework 4.6.2 по умолчанию. Более поздние версии ОС включают в себя более поздние версии .NET Framework. Полный список версий .NET, которые входят в состав более поздних версий Windows 10, см. в этой статье.

    .NET Framework более ранних версий, чем 4.6.2, работает с упакованными классическими приложениями в большинстве случаев. Тем не менее, если вы используете более раннюю версию, чем 4.6.2, следует полностью протестировать упакованное классическое приложение перед его распространением среди пользователей.

    • 4.0 – 4.6.1. Приложения, предназначенные для этих версий платформа .NET Framework, должны выполняться без проблем 4.6.2 или более поздней версии. Поэтому такие приложения должны устанавливаться и работать без изменений в Windows 10 версии 1607 или более поздних с версией .NET Framework, которая предусмотрена в операционной системе.

    • 2.0 и 3.5. В нашем тестировании упакованные классические приложения, предназначенные для этих версий платформа .NET Framework обычно работают, но могут столкнуться с проблемами производительности в некоторых сценариях. Чтобы эти упакованные приложения могли устанавливаться и запускаться, на целевом компьютере должен быть установлен компонент .NET Framework 3.5 (он также включает в себя .NET Framework 2.0 и 3.0). Следует также тщательно протестировать эти приложения после их упаковки.

  • Для приложения требуется драйвер. MSIX не поддерживает драйверы.

  • Ваше приложение выполняет запись в папку AppData или в реестр с перспективой обмена данными с другим приложением. После преобразования данные папки AppData перенаправляются в локальное хранилище данных приложения, являющееся частным хранилищем для каждого приложения.

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

  • Приложение выполняет запись в каталог установки приложения. Например, ваше приложение выполняет запись в файл журнала, который вы поместили в тот же каталог, что и EXE-файл. Это не поддерживается, так как папка защищена. Мы рекомендуем написать в другое расположение, например локальное хранилище данных приложения. Мы добавили возможность, которая позволяет это в 1809 и более поздних версиях.

  • Приложение использует текущий рабочий каталог. В среде выполнения ваше упакованное классическое приложение не получит тот же рабочий каталог, который ранее указан для вашего ярлыка LNK на рабочем столе. Необходимо изменить CWD в среде выполнения, если у вашего приложения должен быть правильный каталог, чтобы оно работало должным образом.

  • Приложение устанавливает и загружает сборки из параллельной папки side-by-side (SxS) Windows. Например, приложение использует библиотеки среды выполнения C VC8 или VC9 и динамически связывает их из параллельной папки Windows, то есть код использует общие DLL-файлы из общей папки, например C:\Windows\WinSxSS. Такой способ связывания не поддерживается. Вам потребуется статически связать их, связав их с распространяемыми файлами библиотеки непосредственно в код.

Другие вопросы

  • Перепаковка установщика на правильной архитектуре. Если установщик предназначен для установки на компьютере x86. Обязательно перепакуйте установщик на компьютере x86. Это применимо для установщика, предназначенного для компьютеров x64.

    Примечание.

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