我在将PowerBuilder应用程序从XP迁移到Windows 7时遇到了问题。
我们在Windows XP上的PowerBuilder中构建了应用程序,当我们尝试在Windows 7计算机上的组件服务中安装组件时,会出现兼容性错误。一切都在Windows XP上运行良好。但我认为因为7上的DLL是如此不同,它有问题。
如果程序是在Windows 7环境中使用PowerBuilder IDE构建的,那可能会解决问题吗?
申请分为
- 在Server 2003上运行的服务器组件
- 在Win7上成功安装的客户端组件
- 安装服务器组件时生成到MSI中的代理组件。
问题只是代理。 MSI不想在Windows 7上运行。 如果客户端桌面上未安装代理,则客户端无法与服务器通信。
当我在Windows 7上以兼容模式运行MSI时,我会得到错误的一些细节。他们在这里
程序兼容性问题发现不兼容的应用程序修复程序 应用程序CCS_Proxy_XP_Exports
发现的问题不兼容的应用程序CCS_Proxy_XP_Exports是 不兼容。
修复应用程序CCS_Proxy_XP_Exports提供修复的步骤 不兼容的应用程序。 CompatMode CompatMode UserVerifySolution 用户验证解决方案Verify_NO
检测详情收集信息计算机名称:########## Windows版本:6.1架构:amd64时间:11月3日星期三 14,2012 11:56:36 AM
发布商详情程序兼容性让旧程序运行 这个版本的Windows。软件包版本:1.5发布者:Microsoft 视窗
程序兼容性使旧版程序在此版本中运行 视窗。软件包版本:1.0发布者:Microsoft Corporation
如果我查看有关事件日志的更多详细信息,我会收到以下内容
“产品:客户端通信(应用程序代理) - 错误1928。 注册COM +应用程序时出错。联系您的支持人员 了解更多信息。“
答案 0 :(得分:0)
实际上,win7平台上的dll与之前的版本并没有什么不同。可能存在与现在存在于WinSxS dll-hell目录中的多个和不同C运行时相关的差异,但这不应该影响powerbuilder(正如我从11.5经典版本体验中所说)。
我怀疑您可能遇到与UAC和/或ACL管理相关的一些问题。我最近通过增加Vista / Win7规范的兼容性来升级一些传统的PB应用程序。
简而言之:应用程序必须在不需要管理权限的情况下运行,并且不得尝试修改c:\
或c:\windows
等特权位置的数据。
因此,不能再在program files
目录中安装所有内容。应用程序二进制文件可以部署在program files
中,但如果应用程序需要创建/修改某些文件,则必须将它们部署在用户共享数据的ProgramData
子目录中和/或本地用户数据文件中。私人数据。必须修改应用程序才能在正确的目录中创建或查找文件。如果您不遵守该标准,则文件虚拟化机制可以隐藏权限不足,并且可以模拟用户本地数据中VirtualStore
目录中的文件,但这只是一种解决方法,它还提供了一些其他问题。 / p>
鉴于您的错误消息,如果代理也是PB应用程序,假设PB只生成32位二进制文件并且您的系统是64位,那么register a 32b COM+ onto a Win2008的提示可能对您有帮助吗? / p>
答案 1 :(得分:0)
以为,您的代理exe / dll文件没有清单或清单不包含兼容性部分。尝试将compatibility info添加到清单。