2013-09-30 43 views
0

我關注了一套超過100個delphi(XE2)項目,這些項目目前都是在沒有軟件包的情況下構建的。幾個可執行文件和DLL包含一些大型的第三方組件集,它們的大小增加了幾兆字節。我們的安裝程序已經超過100MB,有幾個可執行文件超過10MB,幾個大約4MB,並且大多數在1到2 MB之間。我正在考慮對一些第三方組件和VCL使用軟件包。通常,可視化組件僅用於可執行文件,而不是DLL。 DLL必須保留DLL,因爲有些是從其他語言調用的。使用Delphi軟件包有什麼可能的問題

如果我們改用包裝,主要注意事項和危險有哪些?什麼可能會打破?它會影響調試,測試,構建(使用FinalBuilder)或維護的便利嗎?運行時內存利用率會不可接受地增加,因爲我們將在運行時加載整個BPL,而不僅僅是鏈接器所需的單位?

我知道唯一真正的答案將來自我們的具體應用程序,但我會非常感謝來自任何人已經走過這條路,或轉身離開它的任何建議。

+1

簡單的答案是,你會交易簡單的大小。您將能夠減少安裝程序的大小,但代價是複雜性大大增加。 –

+0

是的,我知道這種權衡。這就是爲什麼我在尋找一個答案,強調了一些實際困難的例子。 – frogb

+1

有很多困難。我想沒有人會嘗試爲你寫一份清單。像這樣的開放式問題往往不會產生太多的熱情。 –

回答

1

我避免像瘟疫一樣的運行時BPL。原因如下:

答:您需要考慮版本控制。當有人更新ONE BPL或EXE而不是其他人時會發生什麼情況。

B.你需要考慮DLL地獄。你的路徑是什麼,並且是你的應用程序在同一個文件夾中的所有片斷,還是將它們放在路徑上的目錄中?你需要考慮在運行時可能會丟失一個或多個文件的可能性。這通常會導致應用程序中斷。有些人實際上使用這個效果很好(一些沒有支付功能X的客戶甚至沒有收到BPL),但大多數情況下,這只是另一個麻煩來源。

D.萬一您需要修復VCL源代碼中的錯誤,您是否真的想要將VCL BPL重建爲您的有趣維護編程活動列表?

E.在我工作的一個基於BPL的大型應用程序中,我發現在一個項目組中打開了主EXE及其所有插件BPL子部分,導致Delphi(當時的XE)顯着減少穩定(崩潰更多)比當我加載同樣大,但單個可執行項目時。 IDE問題並非聞所未聞,特別是在發生項目組中多個項目之間的依賴性時。每當使用軟件包的概念出現時,我發現一杯好飲料和8小時的編程休息通常就足夠了。

+0

非常感謝。這似乎總結了一下,並且按照你最後一句中的建議爲我打定了主意。 – frogb