防止IDE更改包的“requires”子句

时间:2009-08-10 05:16:35

标签: delphi delphi-2009

我有一个共享运行时包,我用它来支持使用包作为插件系统的应用程序。我在共享包中包含了几个第三方单元,以减少必须分发的BPL数量。

Delphi似乎对此设置感到头疼,偶尔只更新“共享DCP”区域中的DCP文件(我机器上的C:\ Users \ Public \ Documents \ RAD Studio \ 6.0 \ Dcp)而不是一个在DCP输出目录中(在项目选项中指定)。

这不是我的主要问题但是......我的主要问题是Delphi经常引发这个对话:

Delphi Change Package Dialog

(这只是一个例子,它也适用于我已安装的其他软件包)

现在,在Delphi 2009中,至少当我取消此对话框(并在下一个出现的对话框上单击“是”)时,它不会改变任何内容。以前的版本仍然会继续使用我的dpk文件。

我目前无法让该死的对话停止上来。该包被设置为运行时包,它没有任何“必需”包(除了VCL包)。我以为我一个月前舔过它,但它又开始了。

DPK文件或DPROJ文件没有变化。

我知道它为什么这样做... Delphi正试图让这个包内部与IDE中的其他包保持一致,以防我安装它。我想停止IDE这样做。

有人有任何建议吗?

N - [

2 个答案:

答案 0 :(得分:4)

您应该明确引用DPK文件的包含部分中对话框中提到的每个单元。该对话框仅显示隐式(=未列在包含)中的单位,并建议要求他们最初所属的包。

答案 1 :(得分:2)

如果delphi要求此软件包是因为您使用的是某些不在软件包本身或所需软件包中的单元。

顺便说一下,如果Delphi提示你使用这个软件包是因为Delphi“知道”你需要这些单元的软件包并且你没有声明,那么软件包将被编译,这些单元是“implicity”导入的。如果您正在使用包,这可能会产生不一致的应用程序。请记住,一个单元只能在应用程序中加载一次。