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.”
Actually dll on the win7 platform are not different from previous ones. There can be differences related to the multiple and different C runtimes that live now in the WinSxS dll-hell directories but this should not impact powerbuilder (as I can say from my 11.5 classic release experience).
I suspect that you might have some problems related to the UAC and or ACL management. I recently upgraded some legacy PB applications by adding compatibility to the Vista / Win7 specifications.
In short : the application must run without needing administrative privileges, and must not try to modify data in privileged places like c:\
or c:\windows
.
Thus everything must no more be installed in program files
directory. The application binaries can be deployed in program files
but if the application need to create / modify some files they must be deployed in a ProgramData
subdirectory for user-shared datad and / or in the local user data files for the private data. The application has to be modified to create or find the files in the correct directories. If you do not comply to the standard, the file virtualization mechanism can hide a lack of rights and can simulate the files in a VirtualStore
directory in the user local data but is just a workaround and it provides some other problems.
Given you error messages, if the proxy is also a PB application, given the fact that PB only produce 32bits binaries and that your system is a 64bits one, maybe that the tips to register a 32b COM+ onto a Win2008 could help you?