Предупреждение '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-объектов. Вот шаги.

  1. Откройте RegEdit (как администратор)
  2. Выбрать HKEY_LOCAL_MAHCHINE узел
  3. Выбрать File | Load Hive
  4. Перейдите и выберите ваш Registry.dat файл в вашем приложении packagefiles папка
  5. Назовите узел APPX_ROOT
  6. Экспорт APPX_ROOT узел в файл с именем APPX_ROOT.reg
  7. Открой APPX_ROOT.reg файл в текстовом редакторе (который имеет хорошие глобальные функции поиска / замены, такие как notepad++)
  8. Поиск текста hex(7), Это приведет вас к первому значению, которое вам нужно заменить. Это должно быть префиксом "InprocServer32"=
  9. Скопируйте значение @ (по умолчанию) значение regkey (строка выше).
  10. Выделите содержимое InprocServer32, начиная с "hex(7)" до конца шестнадцатеричных цифр.
  11. Если вы используете Notepad++, нажмите CTRL+H. Поле НАЙТИ должно быть выбранными шестнадцатеричными значениями. Вставьте @ значение в поле Заменить. Сделайте глобальную замену, чтобы сэкономить время. Таким образом, вы должны получить строки, которые выглядят так:
    @="[{AppVPackageRoot}]\\filename.dll"
    "InprocServer32"="[{AppVPackageRoot}]\\filename.dll"
    
  12. Повторите шаги с 8 по 11, пока все hex(7) экземпляры были заменены.
  13. Спасти APPX_ROOT.reg файл
  14. Объединить APPX_ROOT.reg файл обратно в реестр (щелкните правой кнопкой мыши APPX_ROOT.reg и выберите Merge командовать или использовать regedit)
  15. Выберите APPX_ROOT узел в regedit
  16. Выбрать File|Unload Hive, Выберите ДА, чтобы отключить файл реестра.
  17. Закрыть regedit

Это позволяет Desktop Bridge правильно находить и создавать экземпляры ваших COM-объектов. Создайте свой пакет APPX с обновленным Registry.dat.

Другие вопросы по тегам