2010-03-05 40 views
4

是否有一種方法可以對一堆DLL進行分組,並在運行時仍然使用它們(未壓縮)。對不起,這個問題聽起來既簡單又愚蠢,但我不確定要問什麼。在可執行文件中使用分組DLL DLL

我會解釋,雖然情況:

我們已經有兩個獨立的Windows應用程序,現在我們的應用程序之一已經膨脹到這種笨拙的比例,其他應用程序不能在外面跑的第一個應用程序的範圍。我們希望保留一些封裝,同時讓更小的程序用於某些更大的程序功能。

運行應用程序沒有問題,除了我們不想發送小項目所有的20-30個DLL。

+0

這些.NET程序集或本機代碼庫? – 2010-03-10 14:13:51

+0

原生代碼(使用Delphi) – 2010-03-12 14:17:08

回答

5

有可能通過添加檢查,如果DLL是目前啓動代碼做到這一點在目標系統上,如果沒有,然後從資源部分提取它們(或簡單地標記到exe的結尾)。一個很好的例子是Process Explorer - 它是作爲一個單獨的二進制文件分發的,但是當它運行時,它會提取並安裝一個驅動程序。

3

如果您遇到這樣的情況,那些程序集中的大部分或全部都必須放在一起,那麼我強烈建議將代碼文件合併到同一個項目中並重新編譯。這會讓你有一個組裝。

當然還有其他一些考慮因素,如編譯時間,最終dll的總體大小,各個部分的更改頻率以及每個組件的部署是否沒有其他部分。

這樣做的公司的一個例子是Telerik。他們的開發組件都被編譯成相同的程序集。這使得部署變得非常輕鬆。與此相反的是Dev Express,它將每個控件放入其自己的程序集中。由於這只是維護,更少的部署,Dev Express項目並不是一件容易的事。

(我不爲任何這些公司的工作。不過,我有很多與兩個工具包的經驗。)

+0

他們不使用程序集,它不是.NET。 (雖然你的答案仍然適用。) – Zifre 2010-03-13 14:51:32

相關問題