在Delphi 2010中将文件添加到DPR文件与项目路径

时间:2010-05-05 21:30:17

标签: delphi delphi-2010

我们正在从D7迁移到D2010,并且正在就清理项目路径进行辩论。我们有许多目录,其中包含大量Pas文件,这些目录包含在某些项目路径中,但实际上只有少数文件被任何单个项目使用。

一种选择是完全消除项目路径,并且只在dpr中使用所有文件。

第二个选项是只保留dpr中所需的文件,并将项目路径保存到其余文件的目录中。

一个选项对另一个选项有争议吗?

5 个答案:

答案 0 :(得分:9)

在dpr中明确显示所有单元可以极大地改善编译时间,代码完成,错误洞察和一般导航。
它不会阻止您将文件保存在文件夹和子文件夹中,而只是不依赖于不同的路径来查找它们。
在一个拥有数百万LOC的大项目中,它会产生巨大的差异。

答案 1 :(得分:9)

我赞成将“库单元”与“项目单元”分开,并将所有“库单元”保留在搜索路径中,项目文件中包含所有“项目单元”。原因如下:

  • 我们的业务线项目规模庞大,几乎是百万LOC项目,但除此之外,还有数百个小型项目可用于各种小型项目。在搜索路径上提供“库单元”使得在不将它们添加到项目的情况下使用这些单元变得非常容易:加起来少了一步!​​
  • 使用搜索路径可以更轻松地移动PAS文件。这对我来说很重要,因为我正在重新组织整个“构建环境”以更好地利用版本控制系统。
  • 当您更改其中一个共享单元并且它依赖于另一个共享单元时,您不需要更新大量项目,它们只是起作用。
  • 我从不考虑将第三方组件(或VCL组件)添加到我的项目中,那么为什么要将我的“库单元”添加到项目中?我们需要在某个地方画线,因为如果我们绝对将所有文件添加到项目中希望更快的编译时间,我们最终会得到难以管理的大型项目!
  • Delphi自动将其DPR文件中的文件名更改为相对文件名。因此,您无法真正将项目从其当前位置移开。现在尝试“分支”并在同一台机器上同时保留项目的两个副本(“发布”和“正在进行中的工作”)。 (这是我为GIT准备我的构建环境,其唯一目的是能够分支)。

作为参考,我的“库单位”是在不相关的项目中使用的那些单位(想想:组件和实用程序)。

答案 2 :(得分:3)

我认为支持包含项目本身在项目中使用的所有文件。这将通过确保使用的单元是项目的一部分来提高“见解”的性能。此外,这将使您能够更轻松地在项目管理器中管理您的代码。拥有大型复杂路径是脆弱的,很难管理。

答案 3 :(得分:2)

关于加速洞察的评论让我很感兴趣,我会尝试一下,但到目前为止,我从未在使用它们的项目中包含共享单元。相反,我为每个库创建了包并将它们添加到项目组中(主要仅用于组织目的,即我从未将它们实际编译为运行时包)。我发现这更容易管理(特别是项目管理器中的所有最新改进),而不是将所有文件放在一个项目中,因为单个(包)项目中的文件夹层次结构不会那么深,特别是没有“... “那么平坦。

答案 4 :(得分:1)

不包含项目中所有文件的原因:

  • 打开/关闭项目的时间减少(表单和数据模块需要额外的时间)
  • 更快的文件重构(重命名/移动文件和目录不需要编辑所有项目)
  • 更容易找到作为核心要求的单位和应用程序逻辑的入口点位置(uses MyInterfaces, MyTypes, MymMainUnit;

这个QC条目:

  

报告编号:77687(RAID:273031)
  状态:在.dpr中打开编辑   随着更多单位的来源变慢   该项目   http://qc.embarcadero.com/wc/qcmain.aspx?d=77687

更新:现在我知道有很多方法可以打开项目文件:) - 但我的观点是,在一个有500个单位引用的dpr中,很难找到“重要”(或“主要”)单位,这是深入研究源代码的起点 - 如果代码是一个只包含必要单元引用的“轻量级”项目文件,则更容易调查代码。