Delphi IDE在执行包的安装后挂起

Delphi IDE在执行包的安装后挂起,delphi,installation,package,Delphi,Installation,Package,我试图通过加载DPROJ文件、编译(成功)然后安装来安装一个商业软件包。当我尝试安装时,“编译进度”框会出现一瞬间,然后IDE会变得无响应。它没有使用大量的CPU资源,因此它没有处于一个紧密的循环中 我该如何着手诊断问题所在?这真的没什么大不了的——如果我们知道软件包的名称以及您使用的是哪个版本的Delphi,这会很有帮助——但我会尝试一下。至少你已经很好地描述了你所观察到的问题。很多新用户甚至做不了那么多 你说你能编译。我希望这意味着这是来源。如果没有——如果你有一个只有DCU的商业图书馆——

我试图通过加载DPROJ文件、编译(成功)然后安装来安装一个商业软件包。当我尝试安装时,“编译进度”框会出现一瞬间,然后IDE会变得无响应。它没有使用大量的CPU资源,因此它没有处于一个紧密的循环中


我该如何着手诊断问题所在?

这真的没什么大不了的——如果我们知道软件包的名称以及您使用的是哪个版本的Delphi,这会很有帮助——但我会尝试一下。至少你已经很好地描述了你所观察到的问题。很多新用户甚至做不了那么多

你说你能编译。我希望这意味着这是来源。如果没有——如果你有一个只有DCU的商业图书馆——你就被敲诈了。给创建它的人打电话,让他们来完成任务

但我们假设您有源代码。如果是这样的话,这个问题实际上很容易找到。以下是您要做的:

  • 打开Delphi的两个副本,将包加载到这两个副本中,然后编译。确保调试信息已打开
  • 在一个副本中,尝试安装该软件包。等它挂起来
  • 切换到Delphi的另一个副本
  • 在菜单中,转到
    Run->Attach to Process…
  • 附加到BDS.exe的另一份副本。(如果你不能分辨哪个是哪个,这很容易:你不能附加到你自己的进程,所以它就是让你连接到的进程。)这将把调试器附加到Delphi的另一个副本上。
    • 如果它没有自动中断到调试器,请单击暂停
  • 切换到主线程并检查调用堆栈。如果您没有发现任何有用的内容,请检查其他线程
  • 如果它没有消耗大量的CPU,那么它可能挂在某个地方的锁上。在主线程中查找对
    WaitForObject
    的调用

从那里,享受调试的乐趣!根据可用信息,我能为您提供的帮助就到此为止,但这应该足以让您开始学习。

这真的没什么大不了的——如果我们知道软件包的名称以及您使用的是哪个版本的Delphi,这将非常有帮助,但我会尝试一下。至少你已经很好地描述了你所观察到的问题。很多新用户甚至做不了那么多

你说你能编译。我希望这意味着这是来源。如果没有——如果你有一个只有DCU的商业图书馆——你就被敲诈了。打电话给创建它的人,让他们来处理它

但我们假设您有源代码。如果是这样的话,这个问题实际上很容易找到。以下是您要做的:

  • 打开Delphi的两个副本,将包加载到这两个副本中,然后编译。确保调试信息已打开
  • 在一个副本中,尝试安装该软件包。等它挂起来
  • 切换到Delphi的另一个副本
  • 在菜单中,转到
    Run->Attach to Process…
  • 附加到BDS.exe的另一份副本。(如果你不能分辨哪个是哪个,这很容易:你不能附加到你自己的进程,所以它就是让你连接到的进程。)这将把调试器附加到Delphi的另一个副本上。
    • 如果它没有自动中断到调试器,请单击暂停
  • 切换到主线程并检查调用堆栈。如果您没有发现任何有用的内容,请检查其他线程
  • 如果它没有消耗大量的CPU,那么它可能挂在某个地方的锁上。在主线程中查找对
    WaitForObject
    的调用

从那里,享受调试的乐趣!根据可用信息,我能为您提供的帮助就到此为止,但应该足以让您开始。

您可以从添加有关项目性质、Delphi版本甚至一些源代码的信息开始。代码似乎有问题。从哪里开始,就是从包中去掉代码,以缩小罪魁祸首的范围。或者调试软件包。如果软件包是商业的,它肯定会得到技术支持,这将帮助你。来吧,伙计们,对他放松点。他是一个新用户,他在这里提供了大量有用的信息。不必因为某人的第一个问题描述得不够详细而让你在当地重复,就把它埋没在投票中。@MasonWheeler:世界需要更多像你这样的人。你可以从添加项目性质的信息开始,你的Delphi版本,甚至可能还有一些源代码。看起来代码有问题。从哪里开始,就是从包中去掉代码,以缩小罪魁祸首的范围。或者调试软件包。如果软件包是商业的,它肯定会得到技术支持,这将帮助你。来吧,伙计们,对他放松点。他是一个新用户,他在这里提供了大量有用的信息。不必因为某人的第一个问题描述得不够详细而让你在当地重复,就把它埋没在否决票中。@MasonWheeler:世界需要更多像你这样的人。提高投票率不仅是因为真正有帮助的建议,也是因为你正试图将对话恢复到我们现在想要的水平。谢谢。升级投票不仅是因为真正有帮助的建议,也是因为你试图将对话恢复到我们现在想要的水平。非常感谢。