如何在Delphi 2010 IDE中指定特定于项目的软件包设置?更改项目选项中的包确实会更改项目组中所有项目的包。
这很烦人,因为我使用需要禁用的软件包来构建我的应用程序,以便在项目组中编译BPL。
答案 0 :(得分:4)
正如我在对vcldeveloper的回答(现在已经某种程度上已经消失)的评论中所说,我可以确认这种行为。虽然我不知道内在函数,但我可以尝试给出一些解释的提示。
在项目选项中禁用包时,这将从IDE卸载此包(可能还有一些包)。如果这些设置对于同一项目组中的每个项目都是唯一的,那么项目的简单切换就必须在IDE中加载/卸载设计时包。除了性能下降之外,可能可以实现。
假设我们在一个项目组中有两个项目,每个项目都包含一个包含一些组件的表单。 Project1中的Form1使用Package1中的组件,Project2中的Form2和Package2中的组件。出于某种原因,两个包都是互斥的。鉴于之前解释过的(不存在的)行为,在两个项目之间切换将加载/卸载相应的包。
但没有人阻止你从Project2打开Form2,需要Package2,同时仍然选择了Project1(这意味着卸载了Package2)。因此,Form2上使用的组件是未知的,并且无法加载表单。
此外,假设您在切换到Project2时选择了Project1并且Project1中的Form1处于打开状态。这将卸载Package1 - 使Form1上的组件消失?
有理由保持项目组中所有项目同步所需或排除的包。
您的问题的解决方案可能是使用单独的项目组。