『架構設計(第2版)CLR Via C#』學習筆記(002)——將Managed 程式碼合并到程式集

來源:互聯網
上載者:User

聲明:本文是讀書筆記,大部分內容是照書抄的,作為自己學習使用,(*^__^*) 嘻嘻……

CLR其實並不和模組一起工作,相反它是和程式集一起工作的。我們所謂的程式集是一個或多個模組/資源檔的邏輯性分組。另外,程式集是最小的重用、安全性以及版本控制單元。對了,有時我們也把程式整合為“組件(component)”。

在上幅圖中,一些託管模組和資源(或資料)檔案準備交由一個工具處理。該工具產生單獨一個PE32(+)檔案來代表檔案的邏輯分組。實際發生的事情是,在這個PE32(+)檔案中包含一個名為“清單(manifest)”的資料區塊。清單是由中繼資料表構成的另一種集合。這些表描述了構成程式集的檔案,由程式集中的檔案實現的公用匯出的類型,以及與程式集相關聯在一起的資源或資料檔案。

預設情況下,將產生的託管模組轉換成一個程式集的實際工作由編譯器來完成。但是,假如希望將一系列檔案合并到一個程式集種,就必須掌握更多的工具(比如程式集連結器AL.exe)及其命令列選項。

程式集是一個可重用的、可保護的、可版本控制的組件的邏輯及物理表示區分開。具體如何將代碼和資源劃分到不同的檔案中,完全取決於個人。

程式集的模組還包含與引用的程式集有關的資訊(它們包括它們的版本號碼)。這些資訊使程式集具有“自描述(self-describing)”性。換言之,CLR能判斷出為了執行程式集中的代碼,程式集的直接依賴對象(immediate dependency)是什麼。不需要在註冊表或Microsoft Active Directory目錄服務中儲存額外的資訊。由於無需額外資訊,所以相較於非託管組件,程式集部署起來容易了很多。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.