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

В этой статье перечислены вещи, которые необходимо знать перед преобразованием существующего установщика в 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 \винсксс. Такой способ связывания не поддерживается. Необходимо подключать их статически, то есть связать с распространяемыми файлами библиотеки непосредственно в самом коде.

Другие замечания

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

    Примечание

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