2009-08-10 63 views
1

我有一個共享運行時軟件包,用於支持將軟件包用作插件系統的應用程序。我在共享軟件包中包含了幾個第三方設備,以減少必須分發的BPL數量。防止IDE更改軟件包的「requires」子句

Delphi似乎有一些令人頭疼的事情,偶爾只更新「共享DCP」區域(我的機器上的C:\ Users \ Public \ Documents \ RAD Studio \ 6.0 \ Dcp)中的DCP文件,而不更新DCP輸出目錄中的一個(如項目選項中指定的那樣)。

那不是我的主要問題,但...我的主要問題是,德爾福拋出了這個對話框經常:

Delphi Change Package Dialog

(這只是一個例子,它發生其他軟件包我已經安裝)

現在,在德爾福2009年,至少當我取消這個對話框(並點擊下一個對話框中的是),它不會改變任何東西。以前的版本仍然會繼續使用我的dpk文件。

我目前無法得到該死的對話框停止來。該軟件包被設置爲運行時軟件包,它沒有任何軟件包「必需」(除了VCL軟件包)。我以爲我在一個月前曾經舔過它,但它已經開始再次出現。

對DPK文件或DPROJ文件沒有任何更改。

我知道它爲什麼這樣做...... Delphi試圖保持這個包與IDE中的其他包一致,以防萬一我安裝它。我想停止IDE這樣做。

有沒有人有任何建議?

N - [

+0

對不起,在查看答案時出現延遲,最近幾天我一直在劇院揮舞着燈光! – Nat 2009-08-12 10:22:49

回答

4

你應該明確地引用每個在對話框中提到的單位包含了DPK文件的部分。該對話框僅顯示暗含的單位(=未在包含)列出並建議需要它們最初屬於的包裝。

+0

+1。另外,請在這個答案中尋找幫助避免此問題的指針:http://stackoverflow.com/questions/1215664/is-implicitly-imported-always-a-bad-thing-in-delphi-packages/1216131#1216131 – 2009-08-10 13:34:32

+0

謝謝你Uwe!所以基本上,如果安裝了一個包含其中一個未明確需要的單元的軟件包,它將需要該軟件包...而不是給你一個它隱式鏈接的單元列表(就像這樣一般)。 – Nat 2009-08-12 10:21:38

+0

我認爲這些單元也首先隱式鏈接,但建議要求這些包。如果單擊確定,則實際完成。 – 2009-08-12 12:11:05

2

如果delphi需要這個軟件包,是因爲你使用了一些不在軟件包本身或所需軟件包中的單元。順便說一句,如果Delphi提示你使用這個包,那是因爲Delphi「知道」你需要的這些單元的一個包,而你沒有聲明,那麼這個包也會被導入這些單元的「implicity」。如果您使用軟件包,這可能會產生不一致的應用程序。記住一個單元只能在應用程序中加載一次。