【发布时间】:2012-05-03 10:41:23
【问题描述】:
编译问题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])。
此 DLL 的控件由 Windows 引用,
实际上,要检查,您可以通过在任何窗口上插入控件来重新创建它,它存在于 PB 建议的列表中
(虽然通过[Regsvr32 / u AgentLink.dll]的控制取消订阅后它会从列表中消失
并在重新出现后重新出现[Regsvr32 AgentLink.dll])
在工作站(Windows 7 Pro 32 位 SP1)上,此应用程序在 PB 中的执行和可执行文件正常工作。 在另一个扩展(Windows 7 Pro 32 bit 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 在WorkingCopy 的.srw 文件中正确地重新传输此二进制部分。
不利的是,在应用程序无法运行的计算机上,窗口的导出会生成一个。 Srw 具有完全不同的二进制部分。
如果我们替换这个被 SVN WorkingCopy 的 .srw 文件中存在的二进制部分损坏的二进制部分,然后我们将这个修改后的文件重新导入库中(在 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.00pm) 编译后不再工作(每次更改都是在另一台计算机上生成并通过 SVN 检索)。 据我们所知,在 14:30 和 16:00 之间的窗口中没有发生任何更改或更新。
欢迎任何帮助。
【问题讨论】:
标签: svn tortoisesvn ole powerbuilder