Совместимость с PowerBuilder в Windows 7
У меня проблемы с переносом приложения PowerBuilder из XP в Windows 7.
Мы создали приложение в PowerBuilder на Windows XP, и когда мы пытаемся установить компоненты в службы компонентов на компьютерах с Windows 7, мы получаем ошибки совместимости. Все отлично работает на Windows XP. Но я думаю, что из-за того, что библиотеки DLL на 7 настолько разные, у них есть проблемы.
Если программа была построена с использованием PowerBuilder IDE в среде Windows 7, это, возможно, решит проблему?
Приложение делится на
- серверный компонент, работающий на Server 2003
- клиентский компонент, который успешно устанавливается на Win7
- прокси-компоненты, которые генерируются в MSI при установке серверных компонентов.
Проблема только в прокси. MSI не хочет работать в Windows 7. Без прокси-сервера, установленного на клиентских компьютерах, клиент не может обмениваться данными с сервером.
Когда я запускаю MSI в режиме совместимости в Windows 7, я получаю некоторые подробности ошибки. Вот они
Обнаружены проблемы совместимости программ. Приложение несовместимого исправления приложения CCS_Proxy_XP_Exports
Обнаружены проблемы Несовместимое приложение CCS_Proxy_XP_Exports несовместимо.
Исправить приложение CCS_Proxy_XP_Exports Содержит шаги по исправлению несовместимого приложения. CompatMode CompatMode UserVerifySolution Пользовательская проверка решения Verify_NO
Сведения об обнаружении Сведения о коллекции Имя компьютера: ########## Версия Windows: 6.1 Архитектура: amd64 Время: среда, 14 ноября 2012 г. 11:56:36
Сведения об издателе Совместимость программ Запустите старые программы в этой версии Windows. Версия пакета: 1.5 Издатель: Microsoft Windows
Совместимость программ Заставьте старые программы работать в этой версии Windows. Версия пакета: 1.0 Издатель: Microsoft Corporation
Если я просматриваю более подробную информацию в журнале событий, я получаю следующее
"Продукт: связь с клиентом (прокси приложения) - ошибка 1928. Ошибка регистрации приложения COM+. Свяжитесь со службой поддержки для получения дополнительной информации ".
2 ответа
Предполагается, что ваш прокси-файл exe/dll не имеет манифеста или манифест не содержит раздел совместимости. Попробуйте добавить информацию о совместимости в манифест.
Главная идея
На самом деле dll на платформе win7 ничем не отличаются от предыдущих. Могут быть различия, связанные с несколькими и разными средами выполнения C, которые сейчас существуют в каталогах dll-hell WinSxS, но это не должно влиять на powerbuilder (как я могу сказать из своего опыта классической версии 11.5).
Я подозреваю, что у вас могут быть некоторые проблемы, связанные с управлением UAC и / или ACL. Недавно я обновил некоторые устаревшие приложения PB, добавив совместимость со спецификациями Vista / Win7.
Вкратце: приложение должно работать без административных привилегий и не должно пытаться изменять данные в таких привилегированных местах, как c:\
или же c:\windows
,
Таким образом, все больше не должно быть установлено в program files
каталог. Двоичные файлы приложения могут быть развернуты в program files
но если приложению необходимо создать / изменить некоторые файлы, они должны быть развернуты в ProgramData
подкаталог для общих данных пользователя и / или в локальных файлах пользовательских данных для личных данных. Приложение должно быть изменено, чтобы создать или найти файлы в правильных каталогах. Если вы не соответствуете стандарту, механизм виртуализации файлов может скрыть отсутствие прав и может имитировать файлы в VirtualStore
каталог в пользовательских локальных данных, но это просто обходной путь, и он предоставляет некоторые другие проблемы.
Com + ошибка
Если у вас есть сообщения об ошибках, если прокси-сервер также является приложением PB, учитывая тот факт, что PB генерирует только 32-битные двоичные файлы, а ваша система 64-битная, может быть, что советы по регистрации 32-битного COM+ на Win2008 могли бы вам помочь?