Знакомство с установщиком
В этой статье перечислены сведения, которые необходимо знать перед преобразованием существующего установщика в MSIX. Возможно, вам не нужно много делать, чтобы подготовить приложение к процессу упаковки, но если какой-либо из приведенных ниже элементов относится к вашему приложению, необходимо решить его перед упаковкой.
У приложения есть служба. Мы поддерживаем преобразование приложений с помощью служб, но важно помнить об ограничениях преобразования службы. После преобразования вам потребуется повышение прав администратора для установки MSIX, содержащего службу. Вы можете преобразовать приложение со службами, начиная с версии 1.2019.1220.0 средства упаковки MSIX, и развернуть MSIX со службами, начиная с выпуска Windows 10 весны 2020 г.
Установщик требует перезагрузки. Если установщик требует перезагрузки, это поддерживается в средстве упаковки 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\WinSxS. Такой способ связывания не поддерживается. Необходимо подключать их статически, то есть связать с распространяемыми файлами библиотеки непосредственно в самом коде.
Другие замечания
Переупаковка установщика для правильной архитектуры. Если установщик предназначен для установки на компьютере x86. Обязательно переупакуйте установщик на компьютере x86. Это применимо для установщика, предназначенного для компьютеров x64.
Примечание
Если приложению требуется выполнять запись в каталог установки или использовать текущий рабочий каталог, можно также добавить в пакет исправление среды выполнения с помощью платформы поддержки пакетов. Дополнительные сведения см. в этой статье.