如何在同一个项目中为不同版本的Delphi使用不同的包

时间:2009-12-18 09:55:22

标签: delphi version packages dof-file

我们正在慢慢地将一个庞大而复杂的Delphi 6项目集合转换为Delphi 2007。

在Delphi中,我可以在dpr,dpk和pas文件中使用编译器指令,以使不同的代码对不同的版本可见。例如:

requires
  rtl,
  vcl,
  vclx,
  {$IFDEF VER180} //Delphi 2007 and later
  IndyCore,
  IndySystem,
  IndyProtocols;
  {$ELSE} //earlier than Delphi 2007
  IndyCore60,
  IndySystem60,
  IndyProtocols60;
  {$ENDIF}

但是,我不知道如何在自由文件中执行相同的操作。上面的requires子句适用于程序使用的包。我希望该程序为不同版本的Delphi设置不同的软件包。所以我想在dof文件中添加如下内容:

{$IFDEF VER180}
Packages=vcl;rtl;vclx;IndySystem;IndyCore;IndyProtocols;MyPackage;
{$ELSE}
Packages=vcl;rtl;vclx;IndySystem60;IndyCore60;IndyProtocols60;MyPackage;
{$ENDIF}

我对Delphi 2007非常陌生,所以希望我错过了一些非常明显的东西!

感激地收到任何建议。

2 个答案:

答案 0 :(得分:2)

在Delphi 2007中,您不再需要dof文件。所有信息都在dproj文件中。

使用2009版,您可以创建不同的构建配置。

但正如我所理解的那样,你在Delphi 6中有一个代码库,并希望将它慢慢转换为2007年?

首先为什么不直接到2010年?您获得了unicode支持(这可能是不进入2009/2010的原因)。 2010年的IDE非常适合使用。稳定和一些新功能。如果unicode不是你的东西,但最后你想要64位,那么你最后需要经历unicode阶段,为什么不现在呢。

接下来,您可以共享单元文件。但是为每个Delphi版本创建不同的项目。项目文件太具体,无法在版本之间共享。

答案 1 :(得分:0)

D2007不使用* .dof。相反,选项存储在YourProject.dproj中。所以不应该有冲突。