【问题标题】:PowerBuilder compatibility on Windows 7PowerBuilder 在 Windows 7 上的兼容性
【发布时间】:2012-11-21 15:50:48
【问题描述】:

我在将 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 月,星期三 2012 年 14 月 14 日上午 11:56:36

发布者详细信息 程序兼容性 让旧程序在其中运行 此版本的 Windows。软件包版本:1.5 发布者:Microsoft 窗户

程序兼容性 使旧程序在此版本中运行 视窗。包版本:1.0 发布者:微软公司

如果我查看事件日志的更多详细信息,我会得到以下信息

“产品:客户端通信(应用程序代理)——错误 1928。 注册 COM+ 应用程序时出错。联系您的支持人员 了解更多信息。”

【问题讨论】:

  • 您的 Windows 7 是 64 位还是 32 位?
  • 实际测试两者。但构建是在 32

标签: migration powerbuilder powerbuilder-build-deploy


【解决方案1】:

总体思路

其实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 位的,也许register a 32b COM+ onto a Win2008 的提示可以帮助您?

【讨论】:

  • @Frantumn:我已经扩展了我的答案,它可能会有所帮助。
  • 代理是从服务器组件生成的,它们是 PowerBuilder,所以我假设从技术上讲代理是 PowerBuilder。我们已经尝试在 32 和 64 版本的 Windows 7 上运行它。两者都不起作用。我不知道安装到另一个位置是否会解决它。客户端应用程序可以很好地安装到 C:PF。并且代理的 MSI 仅尝试安装到组件服务。我想我要去try using a shim 看看是否可行
【解决方案2】:

想一想,您的代理 exe/dll 文件没有清单或清单不包含兼容性部分。尝试将compatibility info 添加到清单中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多