0

I'm having problems migrating a PowerBuilder application from XP to Windows 7.

We've built the application in PowerBuilder on Windows XP, and when we attempt to install components in to component services on Windows 7 machines, we get compatibility errors. Everything works great on Windows XP. But I think because the DLL's on 7 are so different, it's having problems.

If the program was built using a PowerBuilder IDE in a Windows 7 environment, would that possibly fix the problem?

The application is divided into
- a server component running on Server 2003
- a client component which installs sucessfully on Win7
- proxy components that are generated into an MSI when the server components are installed.

The problem is only the proxy. The MSI doesn't want to work on Windows 7. Without the proxy installed on the client desktops, the client can't communicate with the server.

When I run the MSI in compatibility mode on Windows 7, I get some details of the error. Here they are

Program Compatibility Issues found Incompatible Application Fix application CCS_Proxy_XP_Exports

Issues found Incompatible Application CCS_Proxy_XP_Exports is incompatible.

Fix application CCS_Proxy_XP_Exports Provides steps to fix the incompatible application. CompatMode CompatMode UserVerifySolution User Verification of Solution Verify_NO

Detection details Collection information Computer Name: ########## Windows Version: 6.1 Architecture: amd64 Time: Wednesday, November 14, 2012 11:56:36 AM

Publisher details Program Compatibility Make older programs run in this version of Windows. Package Version: 1.5 Publisher: Microsoft Windows

Program Compatibility Make older programs run in this version of Windows. Package Version: 1.0 Publisher: Microsoft Corporation

If I view more details on the event log, I get the following

“Product: Client Communications (Application Proxy) -- Error 1928. Error registering COM+ Application. Contact your support personnel for more information.”</p>

4

2 回答 2

0

以为,您的代理 exe/dll 文件没有清单或清单不包含兼容性部分。尝试将兼容性信息添加到清单。

于 2012-11-21T18:49:23.390 回答
0

大概的概念

其实win7平台上的dll和之前的没什么区别。现在存在于 WinSxS dll-hell 目录中的多个不同的 C 运行时可能存在差异,但这不应该影响 powerbuilder(正如我可以从我的 11.5 经典发布体验中说的那样)。

我怀疑您可能有一些与 UAC 和/或 ACL 管理相关的问题。我最近通过添加对 Vista / Win7 规范的兼容性来升级一些旧的 PB 应用程序。

简而言之:应用程序必须在不需要管理权限的情况下运行,并且不得尝试在c:\或等特权位置修改数据c:\windows

因此,所有东西都不能再安装在program files目录中。应用程序二进制文件可以部署在其中,program files但如果应用程序需要创建/修改某些文件,则必须将它们部署在ProgramData用户共享数据的子目录和/或私有数据的本地用户数据文件中。必须修改应用程序才能在正确的目录中创建或查找文件。如果不遵守标准,文件虚拟化机制可以隐藏权限不足,可以模拟VirtualStore用户本地数据中目录中的文件,但这只是一种解决方法,它会带来一些其他问题。

Com+ 错误

给定错误消息,如果代理也是 PB 应用程序,鉴于 PB 仅生成 32 位二进制文​​件而您的系统是 64 位的,也许将32b COM+ 注册到 Win2008的提示可以帮助您?

于 2012-11-21T16:38:58.283 回答