PowerBuilder 9.0安装全攻略:环境对齐、组件依赖与运行时验证
简介:PowerBuilder 9.0 安装包及配套安装说明,面向需要搭建经典 PB 开发环境的开发人员、备考上机考试的学员以及维护旧系统的技术人员,也可用于课程实验和旧项目迁移前的环境复现。压缩包为 rar 格式,共 69 个文件、约 282.22MB,内含 exe 安装程序、cab 组件包、ini 配置文件、txt 说明、docx 教程与常用函数文档、sql 数据库脚本,以及 hdr、bin、inx 等安装结构文件,安装盘分卷与说明文档分目录存放,便于按需检索。配套文档围绕 Win10 环境整理安装说明,并附 PB9 教程、常用函数资料和数据库示例脚本,便于读者了解开发环境组成、核对安装组件、查阅基础用法与旧项目维护要点。现有 2454 人学习或下载,适合希望获取完整安装素材、减少环境搭建阻碍的读者,也可作为上机练习和旧系统维护的参考资料。
1. 别急着双击 setup.exe:PowerBuilder 9.0 装不上的,多半是先没对齐环境
上周帮一个做老系统维护的哥们折腾他的开发机,PowerBuilder 9.0 安装包双击之后进度条卡在 60%,等了二十分钟没动静,任务管理器里setup.exe占着 25% 的 CPU 干耗着。他以为包坏了,换了三个来源重下,结果一样。其实这类问题我遇到过太多次——PB 9.0 是 2002 年前后的产物,那个年代的安装器对现代 Windows 的权限模型、长路径、UAC 虚拟化几乎没有容错,装不上往往不是包的问题,是宿主环境还没对齐。这套环境在银行、制造、医疗的老业务系统里还大量活着,很多团队要拿它做存量维护、二次开发或者接口对接,装不好就意味着读不了.pbl库文件、连不上老数据库。下面按我自己的顺序,从系统版本怎么选,一路走到装完怎么验证能跑。
2. 装之前先把环境对齐:PowerBuilder 9.0 的版本选择与系统准备
2.1 系统版本怎么挑:原生、兼容模式还是虚拟机
PB 9.0 官方年代的推荐宿主是 Windows 2000 / XP,这个区间里它的安装器是最稳的。放到今天,可选的宿主其实有三档,我一般按这个顺序推荐:
| 宿主方案 | 兼容性 | 性能 | 适用场景 |
|---|---|---|---|
| Windows XP SP3 虚拟机 | 最好,几乎零改动 | 一般,编译慢一些 | 只做老项目维护、需要稳定复现 |
| Windows 7 SP1 实体机 / 虚拟机 | 好,少量兼容设置即可 | 好 | 主力方案,兼顾其他工具 |
| Windows 10 / 11 + 兼容模式 | 一般,部分向导页会异常 | 好 | 临时查看、非长期开发 |
注意:Windows 8 之后的系统上直接跑 PB 9.0 的 setup,最常见的表现是向导界面字体重叠、按钮点不动,或者组件选择列表整块空白。这不是分辨率问题,是安装器的通用控件版本太老,comctl32.dll的清单没写对。这种时候优先换宿主的思路,比在 Win11 上死磕兼容性要省时间得多。
如果是虚拟机方案,我一般这么配:内存给 2GB 就够,PB 9.0 是 32 位程序,给太多也用不上;磁盘 20GB 起步,因为后面还要装数据库客户端;显示分辨率别设太高,1024×768 或者 1280×1024 反而让老界面更整齐。虚拟机的好处是快照——装砸了直接回滚,比卸不干净的残留要舒服太多,这是我这些年最认的一颗后悔药。
2.2 三条路径先清干净:安装目录、临时目录、用户目录
安装之前,有三条路径必须先确认,这是我在老软件上养成的固定动作:
安装目录不要带空格、不要带中文、不要超过两级。我一般用D:\PB90这种最朴素的形式。原因是 PB 9.0 安装器往注册表里写的路径是拼接字符串,遇到空格有时不给你加引号,后面启动时就报“找不到 xxx.dll”。别小看这个,我见过一个环境因为装在D:\Program Files\PB9下面,结果每次打开都提示pborc90.dll加载失败,把整个目录搬到D:\PB90立刻就好了。
临时目录指的是%TEMP%。老安装器解压中间文件时会往这里写,如果路径里有中文用户名(比如C:\Users\张三\AppData\Local\Temp),解压阶段就可能直接失败。检查命令很简单:
# 在 cmd 里执行,看看 TEMP 和 TMP 指向哪里 echo %TEMP% echo %TMP% # 如果有中文或者空格,临时改成纯英文短路径再启动 setup set TEMP=D:\tmp set TMP=D:\tmp mkdir D:\tmp这两行set只在当前 cmd 窗口有效,所以必须在同一个窗口里紧接着执行setup.exe,否则设置就丢了。mkdir先建好目录,避免安装器自己创建失败。这个做法看起来很土,但确实是我遇到“安装向导启动即闪退”时第一个会试的手段。
用户目录这一条容易被忽略。PB 9.0 的某些组件会把配置写到用户目录下的隐藏文件夹里,如果之前的机器上装过旧版本、残留在里面,新装的时候会读到一份错的配置。稳妥的做法是安装前把这些残留先备份走:
# 备份而不是删除,万一后面还要翻旧配置 robocopy "%USERPROFILE%" "D:\backup_pb_cfg" /S /XD "AppData\Local\Temp" /XF "*.tmp"这条robocopy只是把用户目录整体镜像到备份盘,排除了临时目录和临时文件,避免备份体积过大。/S表示包含子目录但跳过空目录,/XD//XF是排除目录和文件。我一般是新机器直接跳过这一步,只有“重装多次还是不成功”的机器才会拿出来用。
2.3 依赖组件与安装顺序:先补齐再动 setup
PB 9.0 本身是绿色度比较高的工具,但它依赖一批同年代的运行库,缺一个就会在某个环节卡住。装之前按这个顺序补齐:
- Microsoft Visual C++ 运行库:PB 9.0 主体和部分驱动是 VC6 编译的,需要 6.0 版运行库;部分插件用的是 VC2005/2008 运行时。这几个版本不冲突,可以共存,全都装上最省事。
- Microsoft Data Access Components(MDAC):2.8 SP1 或更高。这是连老数据库的关键,缺了会在配置连接时报“未找到提供程序”。
- Internet Explorer 6 及以上:听起来很怪,但 PB 9.0 的帮助系统、部分 ActiveX 组件确实依赖 IE 的渲染引擎,系统里 IE 组件被精简掉的版本会报奇怪的错。
- 数据库客户端:如果后续要连 Sybase ASE、SQL Server 2000/2005 之类,客户端要在 PB 之前装好,因为 PB 安装时会探测已存在的客户端并注册对应的驱动插件。
装完运行库记得重启一次再装 PB。这个重启不是玄学,是因为 VC 运行库注册到WinSxS之后,部分进程需要重新加载系统目录才能找到。跳过重启直接装,有一定概率在最后注册组件阶段报“模块加载失败”。
3. 走完安装向导:PowerBuilder 9.0 的 setup 流程与逐屏参数
3.1 启动 setup.exe 的正确姿势:管理员权限与兼容模式
解压安装包之后,目录里通常有setup.exe和一堆.cab、.msi文件。不要直接双击。正确做法是右键 → 属性 → 兼容性,勾上“以兼容模式运行这个程序”,下拉里选Windows XP (Service Pack 3),同时勾上“以管理员身份运行此程序”,确定之后再双击。
如果解压出来的目录里还有autorun.exe,别用它。autorun 在老系统上会弹一个启动菜单,在现代系统上这个菜单常常只剩一个空框,点什么都没反应。直接找setup.exe才是正路。
启动之前我还会确认一件事:系统的 UAC 通知级别。如果调到了最高(始终通知),老安装器在写Program Files、写注册表HKLM的时候会被拦下来或者被虚拟化重定向到VirtualStore,装完看着是成功,实际文件全在%LOCALAPPDATA%\VirtualStore下面,后面找都找不到。安装期间把 UAC 临时调到“仅当程序尝试更改时通知”,装完再调回去,能省一大半排查时间。
3.2 向导里的四个关键选择:安装类型、组件、路径、程序组
向导一共就那么几屏,但每一屏都有个默认值会坑人。我按顺序说。
第一屏:Welcome → Next。这里没什么可选的,直接下一步。
第二屏:安装类型。一般有Typical、Compact、Custom三个选项。永远选 Custom。Typical 会把一堆用不到的示例程序、教程、帮助文档全装上,占空间不说,有些示例程序在安装过程中会尝试注册 ActiveX 控件,注册失败就整个安装回滚。Custom 可以只勾选核心组件。
第三屏:组件选择。这一屏的勾选项在不同来源的安装包里名字略有差异,但核心就这么几块:
| 组件 | 是否勾选 | 说明 |
|---|---|---|
| PowerBuilder | 必选 | IDE 主体,含编译器 |
| DataWindow Designer | 建议勾选 | 数据窗口设计器,做报表必备 |
| Database Interfaces | 必选 | 数据库驱动插件集合 |
| Sample Applications | 不勾 | 示例程序,容易在安装末期报注册失败 |
| Online Books | 视需要 | 帮助文档,占几百 MB |
| InfoMaker | 视需要 | 报表工具,不做报表可以不装 |
关于数据库驱动插件:如果你明确知道要连哪一种库,可以在这一屏只勾对应的驱动,比如Adaptive Server Anywhere、OLE DB、ODBC。勾全部也能装,但每个驱动都往注册表写一批CLSID,装得多、失败的概率也大。我一般的做法是:先只勾ODBC和OLE DB这两个万能接口,其他专用驱动后面按需单独补。
第四屏:安装路径。这里就是前面说的,填D:\PB90这种短路径。填完点下一步之前,先在资源管理器里确认这个目录是空的,或者根本不存在。如果目录里有旧文件,安装器不会提示覆盖,只会往里面混写,装完出来的环境一半新一半旧,最难排查。
第五屏:程序组名。默认是PowerBuilder 9.0,不用改。但如果你机器上还要装 8.0 或者 10.5,这一屏一定要改成带版本区分的名字,比如PB9,否则开始菜单里两个版本的快捷方式会互相覆盖,后面点错版本查半天。
第六屏开始就是复制文件。这一屏我一般啥都不干,就盯着进度条。如果卡在某个百分比超过十分钟不动,看任务管理器里setup.exe的 CPU 和 IO 读数:
- CPU 接近 0、IO 也接近 0 → 大概率在弹一个看不见的对话框(被主窗口挡住或者显示在副屏之外)。用
Alt+Tab切一下,或者把副屏拔了再看看。 - CPU 占满单核、IO 不动 → 安装器在做注册表遍历,正常,让它跑,但超过半小时基本可以判定卡死。
- IO 读数很高 → 还在解压 cab,正常。
3.3 首次启动与授权配置:别停留在欢迎界面
安装完成之后,向导会问要不要立刻启动。我建议先不启动,先把系统重启一次。原因还是那条:注册表里新写的 COM 组件、PATH里新加的路径,都需要新进程重新加载。直接启动有一定概率看到“无法初始化”的报错,然后你会误以为装坏了。
重启之后从开始菜单启动 PowerBuilder 9.0。第一次启动会有一个欢迎界面,中间通常有一个“输入授权信息”或者“选择授权方式”的入口。PB 9.0 的授权方式是序列号 + 授权码,或者一个 license 文件。这里我不复述具体串,因为来源不同、授权形态也不同,按安装包里附带的说明填就行。
值得注意的是:如果第一次启动直接跳过授权进了主界面,功能是受限的,比如编译出来的 exe 会带一个运行期提示。所以第一次启动务必确认授权状态,看菜单 Help → About 里有没有显示授权持有者信息。显示为空就说明没授权成功,重进一次授权界面再填。
还有一个细节:PB 9.0 首次启动会在安装目录下生成pb.ini,这个文件里记录了最近打开的库、窗口位置、编译选项。如果启动时报“无法创建 pb.ini”,那是安装目录没有写权限,把整个D:\PB90目录的权限给当前用户完全控制就行。这条在域环境、受管控的公司机器上特别常见。
4. 装完还没完:PowerBuilder 9.0 的运行时、驱动与环境变量
4.1 运行时 DLL 与环境变量:PATH 里到底该放什么
PB 9.0 编译出来的程序运行时依赖一批 DLL,装在开发机上的时候 IDE 自己会去找,但一旦把程序拷到别的机器上跑,就全靠PATH。这几个是核心的:
pbvm90.dll:虚拟机,最核心,缺了直接起不来。pborc90.dll:Oracle 相关(名字带 orc 但实际是公共运行时的一部分),很多编译产物依赖它。pbdwe90.dll:数据窗口引擎。pbshr90.dll:公共函数库。libjcc.dll:Java 相关的桥接,用到 EJB 或者 Java 调用才需要。
把这些 DLL 所在目录加进PATH,最稳的做法是加系统级而不是用户级,因为有些服务、计划任务是在别的账户下跑的:
# 用 setx 写系统级 PATH,注意:会覆盖当前值,必须先读出来拼上 # 先看当前系统 PATH reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path # 再追加,注意 /M 表示系统级 setx PATH "%PATH%;D:\PB90\Shared\PowerBuilder" /Msetx有个坑:它写入的字符串上限是 1024 字符,超过会被截断。所以如果原PATH已经很臃肿,别用setx,直接去“系统属性 → 环境变量”的图形界面里编辑,那个没有长度限制。/M是写到HKLM,不带就是写到当前用户。改完之后新开的 cmd 窗口才生效,已经开着的窗口读的还是旧值。
我一般还会额外做一件事:把 PB 的运行时目录直接复制一份到编译产物的输出目录旁边。这样交付给别人的时候,不用教对方配环境变量,双击就能跑。代价是每个交付包都多几 MB,但省下来的沟通成本远不止这些。
4.2 数据库连接与驱动插件:ODBC 与 DBMS 接口对齐
PB 9.0 连数据库有两条路:ODBC 和原生驱动(DBMS 接口)。原生驱动性能好一些,但依赖厂商客户端;ODBC 通用,配置简单。我一般优先 ODBC,除非明确有性能要求。
配置 ODBC 之前,先确认位数对齐。PB 9.0 是 32 位程序,它只能看到 32 位的 ODBC 数据源。在 64 位 Windows 上,控制面板里那个“ODBC 数据源”默认打开的是 64 位管理器,你在里面建的数据源 PB 是看不见的。必须走这个:
# 打开 32 位 ODBC 管理器 C:\Windows\SysWOW64\odbcad32.exe这条命令是整篇文章里我最想强调的一行。我见过太多人在这上面浪费时间——数据源建好了,PB 里就是列不出来,反复重装驱动都没用,其实就是打开的管理器位数不对。
建完数据源之后回到 PB,在 Database Profile 里新建一个 ODBC 连接,填 Data Source 名字、用户名、密码,然后点 Test Connection。测试通过之后再点一次“复制到剪贴板”或者直接保存 profile,这样连接串就固化下来了,后面在代码里SQLCA.DBMS = "ODBC"加SQLCA.DBParm就能直接用。
如果用原生驱动,比如连 SQL Server,需要在安装目录的Shared\PowerBuilder下面确认PBMSS90.dll存在,然后在 profile 里选MSS Microsoft SQL Server。这个 DLL 不在的时候,profile 下拉里根本不会出现对应的选项,不是配置问题,是驱动插件没装。补装的方式是重新跑一遍 setup,在组件选择那一屏单独勾上对应驱动,其他都不动。
4.3 库文件关联:.pbl / .pbt / .pbw 怎么打开
.pbl是 PB 的库文件,一个库里可以装很多对象;.pbt是目标文件,描述一个应用的整体结构;.pbw是工作空间,9.0 开始引入的,一个工作空间可以挂多个目标。这三个后缀如果在资源管理器里双击打不开,或者打开的是别的程序,说明文件关联没注册。
修的方式有两种。第一种是重新跑一遍 setup 的修复安装,它会重写关联。第二种是手动指定:右键任一.pbl文件 → 打开方式 → 选择D:\PB90\pb90.exe→ 勾选“始终使用此程序打开”。
我一般用第二种,快。但要注意,.pbw关联到pb90.exe之后,双击打开的整个工作空间,如果里面引用的.pbt用了绝对路径而且路径变了,会提示找不到目标。这种时候别慌,在 PB 里 File → Open 手动重新指定一次目标路径,保存之后关联就正常了。
5. 排查与避坑:PowerBuilder 9.0 安装失败的五类典型现象
5.1 五条踩坑记录:现象、原因、解决
下面这五条,基本覆盖了我这些年遇到的 PB 9.0 安装问题里的八成。
第一条:进度条卡在“正在注册组件”,一等就是半小时。
现象是安装向导最后一步不动,任务管理器里setup.exe的 CPU 时高时低。原因是它在用regsvr32逐个注册 ActiveX 控件,其中某个控件依赖的运行库没装,注册会超时重试。解决方式是先结束进程,把 VC 6.0 运行库和 MDAC 补齐,重启之后重装,并且在组件选择里取消Sample Applications。示例程序里带的第三方控件是重灾区。
第二条:装完启动,报“无法加载 pbvm90.dll”。
现象很直接,双击图标弹一个错误框。原因是PATH里没有指向Shared\PowerBuilder目录,或者指向了但那个目录里确实没这个文件。先去看文件在不在,不在就是安装时组件没勾全,重新跑 setup 修复;文件在但还是报错,就是PATH的问题,用前面 4.1 的方法补上。还有一种少见情况:系统里存在同名 DLL 的其他版本,被优先加载了。用 Process Explorer 看进程加载的模块路径能确认。
第三条:向导界面文字变成方块或者整块空白。
现象是安装向导的按钮、列表全是乱码或者干脆看不见。原因是系统缺少老版本的通用控件或者字体替换出了问题。解决方式是先把系统区域设置里的“非 Unicode 程序的语言”确认为中文(简体),然后装一遍comctl32的更新。如果还是不行,换 Windows 7 或者 XP 虚拟机,别在 Win10/11 上耗。
第四条:装完之后,开始菜单里的快捷方式指向一个不存在的路径。
现象是点了没反应,右键看属性,目标路径是C:\Program Files\Sybase\...之类,但你明明装在了D:\PB90。原因是安装过程中你中途改过一次安装路径,安装器第一次写的快捷方式没跟着更新。解决方式是删掉快捷方式,手动在D:\PB90里找到pb90.exe发一个到桌面。这个坑不常见但很迷惑人,因为你会以为整个安装都错了,其实只是快捷方式错了。
第五条:编译出来的 exe 在开发机上能跑,拷到客户机上就报错。
现象是客户机双击提示缺少 DLL,或者一闪而过。原因是目标机器没有 PB 运行时。解决方式是在客户机上装一遍 PB 的“运行时分发版”,或者把Shared\PowerBuilder下的核心 DLL 随程序一起拷过去。这里有个细节:分发的时候建议把 DLL 放在 exe 同目录,而不是依赖PATH,因为客户机的PATH你控制不了,而且可能已经有别的软件把同名 DLL 放进去了,加载顺序一乱就出玄学问题。
5.2 卸不干净怎么救:回滚与重装顺序
PB 9.0 卸载是个麻烦事。它不只写注册表的卸载项,还往HKLM\SOFTWARE下面写了一大堆CLSID,往系统目录写 DLL,卸载程序经常漏删。表现就是卸完重装,装到一半提示“已存在旧版本”。
我的处理顺序是这样:
- 先走控制面板的卸载,让它删掉能删的。
- 手动删安装目录。注意
Shared\PowerBuilder这个目录可能在C:\Program Files\Common Files下面,别只删D:\PB90。 - 清理注册表残留。这一步必须小心,先导出备份再动手:
# 导出备份,出问题能还原 reg export "HKLM\SOFTWARE\Sybase" D:\backup_sybase.reg reg export "HKCU\SOFTWARE\Sybase" D:\backup_sybase_hkcu.reg # 确认没有别的 Sybase 产品在用之后,再删 reg delete "HKLM\SOFTWARE\Sybase" /f reg delete "HKCU\SOFTWARE\Sybase" /freg export是整棵子树导出,恢复的时候双击.reg文件就行。/f表示不再询问。注意:如果机器上还装着别的同厂商产品,比如某个数据库客户端,删这棵子树会一起带走,所以第二步的确认不能省。
- 重启,然后重新安装。
如果是虚拟机方案,第 2 到第 4 步全都可以用快照回滚代替,这也是我一直推荐虚拟机的原因。装坏了直接回到干净快照,两分钟的事,比跟注册表搏斗舒服。
6. 装完怎么验证真能用:一个 20 行的窗口程序跑通全链路
装完了、配完了,怎么确认这套环境是真能用,而不是“看起来能启动”?我的办法是跑一个最小闭环:建工作空间 → 建目标 → 建窗口 → 放一个按钮 → 写一行代码 → 编译成 exe → 在另一台机器上跑起来。全链路走通,才算装完。
第一步,启动 PB,File → New → Workspace,存成D:\pbwork\demo.pbw。第二步,在 Workspace 面板里右键 → New → Target,选 Application,目标名填demo,库文件名填demo.pbl。第三步,在目标上右键 → New → Window,存成w_main,标题改成Demo。第四步,在窗口上放一个按钮,名字默认cb_1,在它的 Clicked 事件里写:
// 按钮点击事件:弹一个消息框,验证运行时和 UI 都正常 MessageBox("验证", "PowerBuilder 9.0 环境正常")这两行代码不需要任何外部依赖,能弹出来就说明虚拟机、UI 框架、事件循环都是好的。第五步,编译。在 Target 上右键 → Build,选Executable,输出路径填D:\pbwork\bin\demo.exe,勾上Prompt for Overwrite,其他默认。
编译出来的 exe 先在本机双击,确认能弹出窗口。然后把demo.exe和Shared\PowerBuilder下那几个核心 DLL 一起拷到另一台没装 PB 的机器上,双击。如果能正常弹出消息框,说明整个运行时链路是通的;如果报缺 DLL,回到 4.1 对一遍清单。
我习惯在验证完之后,把这套最小工程连同 DLL 一起打包留档,命名成pb9_smoke_test.zip。以后每装一台新机器,解压跑一遍,三分钟出结论。有一次我在一台受管控的机器上装完,IDE 启动正常、编译也正常,就是编译出来的 exe 一跑就闪退,最后靠这个冒烟包定位到是系统目录里有个同名旧版 DLL 抢先加载。从那以后我每次装完 PB 9.0,不管多赶时间,都强制走一遍这个冒烟流程再交付,省下的返工时间比这三分钟多得多。希望帮到你。
本文还有配套的精品资源,点击获取