问题编译 PowerBuilder应用程序v12.1 Build 6518
一些开发人员正在使用 SVN (客户端 CollabNet V1.6.16-1 和 TortoiseSVN V1.6.15 PBSCCProxy 02/01/78 < /强>) 此应用程序包含一个包含“ OLE控件”的窗口。 当前版本中的OLE控件在此窗口中显示6个月(迁移后) 通常会调用此控件的功能来启动应用程序。
OLE控件已在所有开发工作站上注册(通过[Regsvr32 AgentLink.dll]
)。
Windows引用此DLL的控件,
实际上,要检查,您可以通过在任何窗口上插入控件来重新创建它,它存在于PB提出的列表中
(虽然通过控制[Regsvr32 / u AgentLink.dll]
取消订阅后它从列表中消失
并且在重新[Regsvr32 AgentLink.dll]
)之后重新出现
在工作站( Windows 7 Pro 32位SP1 )上,在PB中执行此应用程序并且可执行文件正常工作。 在另一个扩展( Windows 7 Pro 32位SP1 )上,恢复源更新后, 在PB中执行并由独立生成的可执行文件生成以下错误消息:
PowerBuilder Application Execution Error (R0039)
Application terminated.
Error: Error Accessing external object property agentproxy at line 88 in open event of object w_hermes_toolbar.
第一次调用OLE对象的函数时会发生错误。
经过研究,放置在窗口上的 OLE对象会在此窗口的导出文件末尾生成二进制部分
[Start of PowerBuilder Binary Data Section: Do NOT Edit]
(在“编辑来源”期间,此二进制文字段不可见)
SVN在.srw
的{{1}}个文件中正确重新传输此二进制文件。
通过利弊,在应用程序不起作用的计算机上,窗口的导出生成一个。 Srw具有完全不同的二进制部分。
如果我们将此二进制部分替换为 SVN WorkingCopy 的WorkingCopy
文件中存在的二进制部分,我们会在库中重新导入此修改后的文件(在 CheckOut之后),然后应用程序再次正常工作。
此二进制文件在某些项目上已损坏, 通过 PBSCCProxy (WorkingCopy的版本包含正确的二进制部分) 或者通过 PowerBuilder 。 Regenerate和FullBuild没有改变任何东西。 独立执行或PB中的问题是相同的。 开发计算机在Windows,PB和SVN版本中是相同的。 PBSCCProxy版本(2.1.78)也相同, 在出现问题后更新版本 2.1.80 (以获取此版本中实施的日志 PBSCC )
问题突然出现了。应用程序和生成的可执行文件完美地完成了 14.30(2.30pm)的编译, 在 16.00(下午4点)编译后不再有效(每次在另一台计算机上生成更改并通过 SVN 检索)。 据我们所知,在 14:30 和 16:00 之间的窗口中没有发生任何更改或更新。
欢迎任何帮助。
答案 0 :(得分:0)
此部分将表示上次编辑对象/窗口的工作站的OLE控件的二进制版本。
确保所有开发工作站(包括任何专用构建计算机)都安装并注册了当前和正确版本的OLE控件。