如何在打开Delphi XE项目时修复bpl加载问题?

4
很多时候,当我尝试在Delphi XE中打开任何项目时,会出现以下问题,其中涉及几个常见的bpl包:
“无法加载包“Name1.bpl”。组件“Name2”无法由包“name1.bpl”注册,因为它已经被包“name1.bpl”注册。你想在下次加载项目时尝试加载这个包吗?”
谢谢您的帮助!
P.S.强制关闭进程并重新启动IDE通常会有所帮助。
2个回答

6

请确保IDE没有从其他文件夹加载SakEmai15.bpl的副本。


我确信IDE没有加载另一个副本。 - Dmitry
3
BPL只是一个DLL,而DLL具有引用计数功能,因此可以从相同的路径多次加载。如果从不同路径加载相同的DLL/BPL,则会被视为不同的实例。使用SysInternals的Process Explorer或File Monitor验证IDE实际加载的内容。 - Remy Lebeau
1
我们并没有暗示您。IDE有时可能会出现意外情况。在解决IDE问题时,您应该找出IDE实际上正在做什么,而不是您认为它正在做什么。使用进程/文件监视器将告诉您加载了哪些DLl/BPL,并从哪些路径加载。 - Remy Lebeau

4
新的Delphi具有延迟包加载功能。这应该优化启动速度,当不需要加载包时,它们就不会被加载。
对于组件包,这个功能很好用,但是对于那些修改IDE菜单的包来说,就有些麻烦了。
您可以通过在Register过程中调用ForceDemandLoadState(dlDisable)来告诉IDE始终加载您的包。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接