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

在Delphi 2010中将文件添加到DPR文件与项目路径,delphi,delphi-2010,Delphi,Delphi 2010,我们刚刚从D7迁移到D2010,正在讨论如何清理项目路径。我们有许多目录,其中包含大量的Pas文件,这些文件包含在一些项目路径中,但只有少数文件被任何单个项目实际使用 一种选择是完全消除项目路径,并且在dpr中只包含所有已使用的文件 第二个选项是在dpr中只保留所需的文件,并为其余文件提供指向目录的项目路径 一个选项比另一个选项更有说服力吗?我赞成将项目使用的所有文件都包含在项目中。这将通过确保使用的单元是项目的一部分来提高“洞察”的性能。此外,这将使您能够更轻松地在项目管理器中管理代码。拥有大

我们刚刚从D7迁移到D2010,正在讨论如何清理项目路径。我们有许多目录,其中包含大量的Pas文件,这些文件包含在一些项目路径中,但只有少数文件被任何单个项目实际使用

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

第二个选项是在dpr中只保留所需的文件,并为其余文件提供指向目录的项目路径


一个选项比另一个选项更有说服力吗?

我赞成将项目使用的所有文件都包含在项目中。这将通过确保使用的单元是项目的一部分来提高“洞察”的性能。此外,这将使您能够更轻松地在项目管理器中管理代码。拥有大而复杂的路径是很脆弱的,很难管理。

将所有单元显式地放在dpr中可以极大地提高编译时间、代码完成、错误洞察和常规导航。
它不会阻止您将文件组织在文件夹和子文件夹中,只是不要依赖不同的路径来查找它们。

在一个拥有数百万LOC的大型项目上,它产生了巨大的差异。

关于加速洞察的评论引起了我的兴趣,我将尝试一下,但到目前为止,我从未在使用它们的项目中包含共享单元。相反,我为每个库创建了包,并将它们添加到项目组中(主要是出于组织目的,也就是说,我从未真正将它们编译为运行时包)。我发现这比将所有文件放在一个项目中更容易管理(尤其是在项目管理器中最近的所有改进的情况下),因为单个(包)项目中的文件夹层次结构不会那么深,特别是没有“..”级别。不将所有文件包含在项目中的原因:

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

报告编号:77687(RAID:273031)
状态:在.dpr中打开编辑 震源速度随着单位的增加而变慢 项目


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

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

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

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

找到主单元总是很容易的:
Alt-p-q
在德语德尔菲语中。:-)@很抱歉,我找不到它(英文版),但我想这只是为了找到主窗体?在我的D2007中,它是项目菜单的第五项。在英语中应该被称为“查看源”。它显示了*.dpr.@Ulrich请看我的编辑,它不必是VCL应用程序-uses子句中的无应用程序单元更清晰。英语Delphi中的Alt-p-v将带您到.dpr.+1指出路径管理问题。我曾经为一个大型多项目构建进行过配置管理,该构建使用了库路径来管理不是专门为每个项目创建的任何单元,我可以保证这可能会引起头痛。尤其是当开发人员忘记使用相对路径时。我记不清“快速重建”持续了一个小时,追踪单位文件的位置并替换项目文件中的路径的次数。但是,向DPR添加文件引用的限制在哪里?我的意思是你没有添加标准的VCL类的类和对话框。第三方组件或自有组件如何?我的项目是巨大的,我仍然希望快速codeinsight。作为一个经验法则,我添加了所有的dpr