2013-07-27 32 views
1

我正在使用Delphi XE2。我有一個使用運行時程序包的應用程序(EXE),一個Core.bpl定製程序包(由EXE使用)和幾個其他定製程序包(也使用Core.bpl程序包(作爲運行時程序包))的大型項目。何時編譯使用更改的運行時包的應用程序

我注意到我可以對Core.bpl做一些小的修改而不需要重新編譯EXE或自定義的Plugin.bpl包。但更重要的更改(添加大量代碼或從現有方法中刪除大量代碼或添加新方法)會導致問題。有時存在不一致的訪問衝突,有時在Core.bpl包中有缺失入口點的錯誤等。

我想最大限度地減少編譯的文件數量,以便我們的用戶在每個版本中都有較少的文件更新。但是,我不希望他們看到我有時看到的錯誤。

我應該重新編譯所有模塊,並且每次改變時使用Core.bpl的EXE,或者是否有一些通用規則可以遵循,以便只對某些類型的Core.bpl更改進行編譯?

+3

如果你改變接口,那麼你必須重新編譯所有依賴的部分 –

+0

@SirRufo使它成爲一個答案.. – bummi

+0

@SirRufo - 就是說,如果添加,更改或刪除方法或屬性,那麼你必須重新編譯一切,但如果你只是改變現有方法的代碼而不改變它的參數,那麼什麼都不需要重新編譯? –

回答

3

每次更改BPL中某個單元的interface section時,都必須重新編譯依賴的部分(EXE或其他BPL)。

+0

也就是說,「執行」行之上的任何內容。 –

+0

@JamesL。 **接口部分**從單詞**接口**開始,並在**實現之前結束** –

+0

是的 - 我意識到這一點。當我在上面的評論中第一次讀到'interface'這個詞時,我認爲你在談論編程意義上的接口。但後來意識到你的意思是與德爾福單位有關。 –

相關問題