如何判斷專案選項中的RunTime Package...是必須要的呢? |
答題得分者是:dllee
|
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
請教各位: 在IDE-->Project Options-->Packages-->Runtime Packages-->Build with Runtime Packages這一個選項中的內容...(指那些dcp檔的名稱....) 請問:
(1)這個內容是不是指在Delphi中所引用的bpl中,只要有設定成runtime package
的bpl...都會放到這個內容中呢? (這裡所指的設定,是說該bpl的專案選項中的
設定....如:designtime...runtime....both...)
(2)像在delphi6中,如果有引用到design的元件,在我使用到其元件到我的專案
時,好像是必須在這個專案的選項中,勾選其build with runtime package..然
後加入designide...這樣子才可以執行該專案....否則會出現找不到proxies的
問題....
想請教的是...如果我把專案選項中該build with runtime package內容全部
刪掉...只留了designide....在執行專案時會有問題嗎?
因為很奇怪的是...delphi在這個選項中的內容...總是有一大堆東東...真不知
道那些要留著...那些可以刪掉...??
(3)如同第二點...如果原本內容中的...vcl..等等不刪除...只在最後加入
designide.....請問將來我的專案exe檔在執行時...指在沒有安裝delphi的電
腦中去執行....是否必須將相關dcp所對應的bpl檔全部一起發佈出去呢?
還是只要有designide60.bpl就可以了呢? 對於專案中要使用runtime package的觀念不太清楚...還請多指教!!
(只知道一旦用了runtime package...就必須將相關的bpl給附上...否則專案
執行檔...將會發生找不到bpl檔的問題....重點就是該如何知道我的專案中是
使用到了那些runtime package..呀!! 而那些又是不須要的呢?) Thanks!!
|
Rain
資深會員 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
(1),如果勾選 Build with Runtime Packages選項我的理解是系統假定專案運行期運行環境中有這些Packages存在(比如在運行專案的機子上也裝有Delphi),於是在編譯程式時不把相關的連接加進去,因而生成的可執行檔要小很多,當你選擇了該選項,並且運行專案的機子上沒有裝Delphi,則需要與專案一起分發這些Packages,因而通常情況下不要選中該項.
(2),從Delphi6開始不分發Proxies.dcu檔, 解決由此產生問題的一個方法即如你所提的在選項中加入designide, 同樣的在執行專案時需一起分發該包檔,至於選項中的其他內容,建議刪除.
(3)只要designide60.bpl即可,相反,如果你保留原來的選項中的內容,則你還需要再一起分發相應的其他檔. //以上是小弟的一點淺見,不妥之處還請多多指教
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
■ 對於 Build with Runtime Packages 的基本認識: 1. 當 Build with Runtime Packages 是「沒有打勾」的狀態時,表示所有已安裝的 bpl 只要這個專案有用到的,都會直接加入這個專案最終的執行檔或 DLL 檔中。(我想這點大家應該都知道了) 2. 當 Build with Runtime Packages 是「打勾」的狀態時,此時必需要很小心在此欄位內所指定的 packages 是否您是準備要一起 release 給客戶或使用者的 packages,因為,只要在此欄位沒有指定到的 packages ,一樣會直接加入到最終的執行檔或 DLL 檔中。 Delphi/BCB 在預設上會將所有您所安裝的 package 都放在這個欄位內,您裝愈多的 packages ,自然內容就會愈多,不過,您可以自行修改,也可以每個專案都不同。
您可以試試將此欄位內的資料都刪除,而其效果等於「沒有打勾」,或是只留部分試試看,檔案大小很容易分辨出來。
不過,並不是每一個 package 都可以任意由此欄去除,例如 designide 這個 package,有可能它初始的方式不同(獨立的 bpl 與加到專案內應該是有些不同,可能有變數共用的問題或是有保護的 package 或是其他的問題),導致專案無法順利執行。 ■ 到底在專案中用到那些 package 呢?有那些需要給客戶或使用者呢?
如上述第 2 點,您在該欄位的都「有可能」是需要給客戶或使用者的,但只是「有可能」。
您可以很簡單的使用 tdump 專案.exe 專案.lst 或 tdump 專案.dll 專案.lst 看出在專案.exe 或 .dll 內需要那些外部檔案的支援,例如,有 Imports from VCL50.BPL 就表示,這個專案需要 VCL50.BPL 這個檔。
您也可以用 http://www.dependencywalker.com/ 的 Depends.exe 看出您的專案需要那些外部的檔案。 我想,以上應該算是可以回答您的三個問題了。 沒空更新的網頁...
http://coolsite.to/dllee C及指標教學,計算機概論,資訊管理導論... http://home.kimo.com.tw/dllee.tw
http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |