Delphi中的{$INCLUDE filename}使用了部分dpr文件

Delphi中的{$INCLUDE filename}使用了部分dpr文件,delphi,Delphi,我有许多Delphi10项目使用相同的单元,我们称它们为“commons” 当我向commons中添加新单元时,我必须手动将其添加到每个项目中。我已尝试将{$INCLUDE commons.inc}行添加到每个.dpr文件的uses部分: uses Forms, {$INCLUDE commons.inc} projectUnit1, ...; commons.inc包含以下内容: common1, common2, 我可以编译一个项目,但无法从commons

我有许多Delphi10项目使用相同的单元,我们称它们为“commons”

当我向commons中添加新单元时,我必须手动将其添加到每个项目中。我已尝试将
{$INCLUDE commons.inc}
行添加到每个
.dpr
文件的
uses
部分:

uses
    Forms,
    {$INCLUDE commons.inc}
    projectUnit1,
    ...;
commons.inc
包含以下内容:

common1,
common2,
我可以编译一个项目,但无法从
commons.inc
管理单元。所谓管理,我指的是Ctrl-F12、从项目中删除等

这来自Delphi的帮助:

对包含文件的使用有一个限制:不能在语句部分中间指定包含文件。事实上,语句部分的开始和结束之间的所有语句都必须存在于同一源文件中

我想这就是我的想法行不通的原因吧


我是做错了什么,还是有其他解决方案?

此解决方案可能适合我。到目前为止,我发现的唯一缺点是包含的文件不会出现在项目管理器中

  • 将包含要包含的文件的文件夹添加到每个项目的搜索路径中
  • 创建Include.pas,一个普通的.pas文件,并以普通方式将其包含在每个项目中
  • 将要包含在多个项目中的文件添加到Include.pas的uses子句中$如果需要,可以使用IFDEF

您确定可以无错误地编译吗?IMO至少应将include改为
common1、common2、
将终止uses语句。IDE基本上“拥有”了大部分DPR文件。但是作为旁注,您是否应该使用
而不是
在这个inc文件中?我没有亲自尝试过,但是尝试创建一个预构建事件脚本来在dpr文件中执行搜索/替换。预生成事件接受DOS命令。我的猜测是调用一个bat文件,该文件调用powershell命令在dpr文件中搜索/替换。是的,这是意料之中的。IDE不会读入您的包含文件。这就是你所付出的代价。你可以使用Project->add to Project和multi-Selection将这两个文件添加到你的.dpr中,就像你可以键入$INCLUDE语句一样快,然后你可以通过IDE管理它们,就像你抱怨不能这样做一样。这听起来像是一个XY问题——我正试图想出一种方法来解决问题Y,首先是我没有正确使用X造成的——对我来说。一开始我没有得到它,但是的,这可能会起作用。可以从“下面描述的解决方法可能适合”开始,这使答案更具可读性。我一开始以为你指的是之前的评论。