Пользовательские действия игнорируются при создании выпуска приложения UWP с помощью Installshield 2016
Я создал проект Basic MSI, используя InstallShield 2014, для создания пакетов выпуска MSI для моего настольного приложения. Я использую файлы правил Installscript в качестве пользовательских действий для установки библиотек зависимостей и пакетов драйверов для моего настольного приложения, и он работает нормально в сборке MSI, как и ожидалось.
Теперь я хочу сгенерировать выпуски приложений UWP для установки того же приложения на компьютерах с Windows 10 S из Магазина Windows. Поэтому я скачал и установил пробную версию профессиональной версии Installshield 2016, которая поможет нам создавать пакеты приложений UWP из существующего проекта MSI - http://learn.flexerasoftware.com/IS-WBNR-InstallShield-2016-Whats-New.
Я выполнил эти шаги для создания приложения UWP из моего существующего проекта Basic MSI - https://www.youtube.com/watch?v=0K5XTJ2aV6o. Пакет выпуска приложения UWP (.appx) успешно создан и установлен на компьютере с Windows 10. Но он игнорировал мои скрипты пользовательских действий и не устанавливал никаких библиотек зависимостей и драйверов. Я получаю сообщение об успешной установке, но на самом деле ничего не установлено.
Я заметил журналы сборки и нашел следующие предупреждающие сообщения. Похоже, мои пользовательские скрипты игнорируются в пакете приложений UWP. Нужно ли менять какие-либо настройки, чтобы он принимал мои пользовательские действия?
ISDEV: warning -9018: Custom action 'ISLockPermissionsCost' will be ignored
ISDEV: warning -9018: Custom action 'ISLockPermissionsInstall' will be ignored
ISDEV: warning -9018: Custom action 'MY_OLD_APP_REMOVAL' will be ignored
ISDEV: warning -9018: Custom action 'MY_DRIVERS_INSTALLATION' will be ignored
ISDEV: warning -9018: Custom action 'MY_DRIVERS_UNINSTALLER' will be ignored
ISDEV: warning -9018: Custom action 'MY_CONFIG_FILE' will be ignored
ISDEV: warning -9018: Custom action 'MY_SET_DEFAULT_OPTIONS' will be ignored
Пожалуйста, дайте мне способ решить эту проблему.
1 ответ
Ваши ожидания относительно того, что можно сделать в пакете приложений UWP, неверны. Начните с прочтения некоторых ограничений, задокументированных в разделе Подготовка к упаковке приложения, в которых, помимо прочего, перечислены следующие неподдерживаемые сценарии:
- Вашему приложению требуется драйвер режима ядра или служба Windows. Мост подходит для приложения, но он не поддерживает драйвер режима ядра или службу Windows, которая должна работать под системной учетной записью. Вместо службы Windows используйте фоновую задачу.
а также
- Ваше приложение использует зависимость в папке System32/SysWOW64. Чтобы эти библиотеки DLL работали, вы должны включить их в часть виртуальной файловой системы вашего пакета приложений Windows. Это гарантирует, что приложение ведет себя так, как если бы библиотеки DLL были установлены в папке System32/SysWOW64. В корне пакета создайте папку с именем VFS. Внутри этой папки создайте папку SystemX64 и SystemX86. Затем поместите 32-разрядную версию вашей DLL в папку SystemX86 и поместите 64-разрядную версию в папку SystemX64.
Хотя с последним можно работать в соответствии с описанием (при правильной установке, а не при использовании настраиваемого действия для этого - нет, нет способа заставить сборку обрабатывать настраиваемые действия), драйвер должен быть установлен на самой машине, Вы можете создать пакет приложения UWP для всего остального (и, если хотите, можете установить оба компонента как часть проекта Suite). Но из-за зависимости от драйвера такое приложение вряд ли подойдет для магазина.