Delphi之所以這么快速,是因為能使用的第三方控制元件非常多,但當大量使用第三方控制元件后,產生的問題也是非常多了。比如,我們做動態庫開發的時候,為了將編譯的動態庫(DLL)變小,我們一般編譯的時候,都選擇帶包編譯,到時候,將控制元件依賴的BPL檔案包一起拷貝到客戶電腦中去就行了,隨著控制元件越來越多,包檔案也就越來越多。。一個小小的程式,本身只有一點大的,為了能正常運行,要把所有的包都拷貝過去,造成我們的程式整體非常龐大,我們一直為這個事情感到困擾。。因為開發人員永遠希望自己的程式能盡量的小。
后來,我發現 Project-Options-packages 如果勾上Build With Runtime packages 這里,在這里,Delphi默認是把所有支持的包都加載上了,比如不需要的如 FastReport 的檔案包(fs7;frx7;frxcs7;fsDB7;frxDB7;fsBDE7;)都在里面,通常情況下,把這里面把不需要的包去掉,重新編譯后,就能解決前面說的問題。。但后面的問題又出來了,我們公司是團隊開發,正常情況下,很少有人去關心每個人去用什么控制元件開發,每個人的的產品所依賴的BPL包,這樣,光靠人來管理過濾這些BPL,在實際的開發當中,是不現實的。。然后我又繼續研究,我發現,Delphi在編譯后,在Project-Information for (工程) 里面,有本工程的所使用的BPL檔案包。。如你新建一個專案,甚至里面所用的包(Rtl70.bpl,VCL70.BPL,VCLX70.BPL),也就說,Delphi在編譯后,就已經知道依賴的包。。但問題這樣,我們還是不好去發布,一個系統編譯可能有幾十個包,我們打包的人,不可能一個個進行核對。。就算一個個核對,也很有可能出錯。導致在客戶的機器上由于缺少BPL檔案包,所以,我們又不得不把沒用的幾百個包全部都打包到一起去發布!!
希望在Delphi編譯前就能把所有需要的BPL包,能讓開發能快速的找到、過濾依賴的包,把不需要的包全部剔除!謝謝!希望高手能提高寶貴的建議,小弟將不甚感激!!
uj5u.com熱心網友回復:
去網上下載Depends工具,它能分析依賴關系。然后你自己在這個基礎上改改基本能實作你的功能。uj5u.com熱心網友回復:
直接不需要就好了么?uj5u.com熱心網友回復:
樓主指示的問題有誤:Build With Runtime packages
1、如果不選擇,Delphi將自動判斷,打包相關的BPL檔案進EXE檔案。
2、如果選擇,Delphi將打包指定的BPL檔案進EXE檔案。
uj5u.com熱心網友回復:
你用delphi帶的打包工具可以加載的
uj5u.com熱心網友回復:
這個只能自己人工管理了,換個思路:如果你發布程式連自己要發布哪些包都不知道,那難以相信你的東西有好的質量轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/133594.html
標籤:VCL組件開發及應用
上一篇:仍然是自動點擊按鈕問題
