Delphi 何时编译使用更改的运行时包的应用程序

Delphi 何时编译使用更改的运行时包的应用程序,delphi,runtime-packages,Delphi,Runtime Packages,我使用的是Delphi XE2。我有一个大型项目,它有一个使用运行时包的应用程序(EXE)、一个Core.bpl自定义包(由EXE使用)和几个其他自定义Plugin.bpl包,它们也使用Core.bpl包(作为运行时包) 我注意到,我可以对Core.bpl进行细微更改,而无需重新编译EXE或自定义Plugin.bpl包。但更重要的更改(添加大量代码或从现有方法中删除大量代码,或添加新方法)会导致问题。有时存在不一致的访问冲突,有时存在关于Core.bpl包中缺少入口点的错误,等等 我想尽量减少编

我使用的是Delphi XE2。我有一个大型项目,它有一个使用运行时包的应用程序(EXE)、一个
Core.bpl
自定义包(由EXE使用)和几个其他自定义
Plugin.bpl
包,它们也使用
Core.bpl
包(作为运行时包)

我注意到,我可以对
Core.bpl
进行细微更改,而无需重新编译EXE或自定义
Plugin.bpl
包。但更重要的更改(添加大量代码或从现有方法中删除大量代码,或添加新方法)会导致问题。有时存在不一致的访问冲突,有时存在关于
Core.bpl
包中缺少入口点的错误,等等

我想尽量减少编译的文件数量,这样我们的用户就可以在每次发布时更新更少的文件。但是,我不希望他们看到我有时看到的错误


我是否应该在每次更改时重新编译使用
Core.bpl
的所有模块和EXE,或者是否有一些一般规则要遵循,以便只针对
Core.bpl
的某些类型的更改编译所有内容?

每次更改bpl中单元的类型时,都必须重新编译依赖的部分(EXE或其他BPL).

如果更改接口,则必须重新编译所有依赖的parts@SirRufo回答一下。@SirRufo-也就是说,如果你添加、更改或删除方法或属性,那么你必须重新编译所有内容,但是如果你只是更改现有方法的代码而不更改其参数,那么就不需要重新编译任何内容了吗ks@bummi以获取更多信息。修改私有成员也会更改接口。基本上,在
实现
行上方进行的任何更改都需要重新生成所有相关代码。也就是说,在
实现
行上方进行的任何更改。@JamesL。接口部分从单词interface开始,在e word实现是的-我意识到了。当我第一次读到你上面评论中的
接口
一词时,我以为你是在说编程意义上的接口。但后来意识到你的意思是,它属于Delphi单元。