2013-04-10 65 views
0

我试图用动态运行时包创建程序Delphi XE2。 当我编译它没有问题,但是当用F9程序运行时只是编译和创建的exe文件,但它没有运行。 我的配置有什么问题?我在运行时运行exe文件时遇到了问题包delphi xe2

配置,我使用

  • 链接与运行时组件设置为true - 从所有配置的32位Windows平台上设置为true

  • 运行软件包继承,设置为true值

注意“链接到运行时包”设置为false时,它可以正常运行。

+0

然后应该有一些诊断。它可能是某种DLL地狱(BPLs未找到或错误的版本)。你是否检查过Delphi的Messages面板,它没有错误?基本上你有两种方法:1)使用像sysInternals Process Monitor这样的外部工具来记录你的应用程序的启动顺序,并查看它在死亡之前的最后一个动作。也许失败搜索BPl或失败的负载或任何。 2)在选项中设置'使用调试DCU',并用F8和F7跟踪RTL的内容,看到它将一个接一个地加载,缩小范围,直到出现错误为止 –

+0

我无法提供解决方案。在转向XE2之后,我们听到了类似的体验。我们必须升级才能获得64位的服务器应用程序功能,但受到影响,因为我们无法使我们的客户端应用程序动态地加载BPL的加载。我们在XE2之前没有遇到过这个问题 - 它在以前的版本中已经工作了多年,没有问题。解决方法是消除对BPL的需求,将所有功能移回到主EXE中。不是一个合适的解决方案,但它允许我们使用XE2。 – Paul

回答

0

您描述的行为是当无法找到.bpl文件时发生的情况。如果您在IDE外运行.exe,您将收到一条错误消息。出于某种原因,从IDE内运行时,错误消息不显示。请注意,即使使用Run Without Debugging选项也是不够的。您必须在IDE外部启动可执行文件,例如通过双击浏览器窗口中的.exe文件。

也许最有效的方法来调试此来找出哪些依赖关系失败与Dependency Walker。加载您的可执行文件并从配置文件菜单调试其启动。

确保可以找到.bpl文件来解决问题。确保它们位于DLL搜索路径中。最好的方法是将它们放在.exe文件旁边。

相关问题