2013-02-28 41 views
1

我知道,管理的模塊是包含PE32頭,CLR頭,元數據和IL代碼的邏輯代碼容器。程序集可以包含多個使用Assembly Linker(AI.exe)鏈接的託管模塊。但是VS不支持多個託管模塊組件。我想知道什麼時候以及爲什麼我們需要管理模塊,如果我們不能在沒有組裝的情況下使用它們,我們不能只使用組件嗎?爲什麼?在哪裏需要管理的模塊

我肯定有一個合理的解釋,但我不知道我知道它是什麼:-)什麼託管模塊

的更多信息:What is a Managed Module (compared to an Assembly)?

+1

你會想看看Ecma 335,章節II.6.1,它給出了模塊的基本原理。它是*代碼共享*的單位。很晦澀,我想不出有什麼好用的。編寫程序的微軟程序員也沒有。 – 2013-02-28 04:27:03

回答

4

圖表posted at the other question似乎很清楚:

enter image description here

基本上,當你想組織你的代碼作爲一個組件容器內,你可以使用一個託管模塊。從理論上講,這應該會給你更好的靈活性。

實際上,這種情況幾乎沒有發生過,因爲大多數人將他們的解決方案組織爲一個項目集合,每個項目都有自己的關聯DLL。這種安排允許您物理換出DLL而無需更換整個(多模塊)組件。

+0

您可以在答案中詳細說明靈活性部分:「理論上,這應該會給您更好的靈活性。」 – Tarik 2013-02-28 03:11:41

+1

好吧,因爲它是一個容器。這與文件夾或zip文件爲您提供的靈活性相同。或者,就此而言,您將任何容器放入其中。您可以將它作爲一個單元處理;移動它,按名稱調用它等。但大多數人使用DLL作爲它們的容器。 – 2013-02-28 03:14:03

+0

那麼編譯器如何決定從哪裏創建一個新的.net模塊? – Tarik 2013-02-28 03:15:27

相關問題