Предупреждение 'W_COM_DARWIN_INSTALLATION_NOT_SUPPORTED': COM при преобразовании установочного приложения Installshield LE
Я пытаюсь преобразовать устаревшее приложение Visual FoxPro 9, в котором используется установщик InstallShield 2015 LE, чтобы мы могли выполнить развертывание с помощью магазина Windows. Если я позволю конвертировать инсталлятор singleImage, он выдаст много предупреждений:
"DesktopAppConverter: предупреждение 'W_COM_DARWIN_INSTALLATION_NOT_SUPPORTED': COM: установка Darwin не поддерживается для упакованных приложений. Значение InprocServer32 подраздела InprocServer32 для CLSID {C27CCE3B-8596-11D1-B16A-00} заменяется значением, которое по умолчанию должно быть заменено на 0 (0) = 02800 = 028). указывает путь к серверу в пакете. В противном случае попытки создать этот класс будут неудачными."
Похоже, я хочу где-то отключить эту функцию DARWIN, но информация об этом очень и очень скудна. Кажется, что эти предупреждения даются на некоторых элементах управления OCX (да, я знаю), а также на компонентах из модулей слияния, включенных в настройку. Кто-нибудь знает, как избавиться от этих предупреждений? В настоящее время они не позволяют запускать конвертер, но некоторые шаги makeAppX, выполняемые вручную, действительно позволяют мне сгенерировать AppX, но при запуске программы появляется быстрое всплывающее окно каждый раз, когда я вхожу в окна с этими элементами управления ocx.
1 ответ
У меня тоже была эта проблема. Недавно я конвертировал приложение VB6 со многими библиотеками DLL и OCX. Это утомительный процесс, в зависимости от количества имеющихся у вас COM-объектов. Вот шаги.
- Откройте RegEdit (как администратор)
- Выбрать
HKEY_LOCAL_MAHCHINE
узел - Выбрать
File | Load Hive
- Перейдите и выберите ваш
Registry.dat
файл в вашем приложенииpackagefiles
папка - Назовите узел
APPX_ROOT
- Экспорт
APPX_ROOT
узел в файл с именемAPPX_ROOT.reg
- Открой
APPX_ROOT.reg
файл в текстовом редакторе (который имеет хорошие глобальные функции поиска / замены, такие как notepad++) - Поиск текста
hex(7)
, Это приведет вас к первому значению, которое вам нужно заменить. Это должно быть префиксом"InprocServer32"=
- Скопируйте значение
@
(по умолчанию) значение regkey (строка выше). - Выделите содержимое InprocServer32, начиная с "hex(7)" до конца шестнадцатеричных цифр.
- Если вы используете Notepad++, нажмите CTRL+H. Поле НАЙТИ должно быть выбранными шестнадцатеричными значениями. Вставьте
@
значение в поле Заменить. Сделайте глобальную замену, чтобы сэкономить время. Таким образом, вы должны получить строки, которые выглядят так:@="[{AppVPackageRoot}]\\filename.dll" "InprocServer32"="[{AppVPackageRoot}]\\filename.dll"
- Повторите шаги с 8 по 11, пока все
hex(7)
экземпляры были заменены. - Спасти
APPX_ROOT.reg
файл - Объединить
APPX_ROOT.reg
файл обратно в реестр (щелкните правой кнопкой мышиAPPX_ROOT.reg
и выберитеMerge
командовать или использовать regedit) - Выберите
APPX_ROOT
узел в regedit - Выбрать
File|Unload Hive
, Выберите ДА, чтобы отключить файл реестра. - Закрыть regedit
Это позволяет Desktop Bridge правильно находить и создавать экземпляры ваших COM-объектов. Создайте свой пакет APPX с обновленным Registry.dat.