程式集

經由編譯器編譯得到的,供CLR進一步編譯執行的那箇中間產物,在WINDOWS系統中,它一般表現為·dll或者是·exe的格式,但是要注意,它們跟普通意義上的WIN32可執行程式是完全不同的東西,程式集必須依靠CLR才能順利執行。

定義

1.程式集(assembly)是一個及一個以上託管模組,以及一些資源檔案的邏輯組合。

2.程式集是組件復用,以及實施安全策略和版本策略的最小單位。

3.程式集是包含一個或者多個類型定義檔案和資源檔案的集合。在程式集包含的所有檔案中,有一個檔案用於 保存清單。(清單是元數據部分中一組數據表的集合,其中包含了程式集中一部分檔案的名稱,描述了程式集的 版本,語言文化,發布者,共有導出類型,以及組成該程式集的所有檔案)。

4、在編譯應用程式中,所創建的CIL代碼存儲在一個程式集中,程式集包括可執行的應用程式檔案(.exe擴展名檔案)和其他應用程式使用的庫(.dll擴展名檔案)。

作為一個單元進行版本控制和部署的一個或多個檔案的集合。程式集是.NETFramework 應用程式的主要構造塊。所有託管類型和資源都包含在某個程式集內,並被標記為只能在該程式集的內部訪問,或者被標記為可以從其他程式集中的代碼訪問。程式集在安全方面也起著重要作用。代碼訪問安全系統使用程式集信息來確定為程式集中的代碼授予的許可權集。

程式集是.NET Framework編程的基本組成部分。

組成部分

1.程式集清單,包含描述該程式集中各元素彼此如何關聯的數據集合,還包含指定該程式集的版本要求和安全標識所需的所有元數據,以及定義該程式集的範圍和解析對資源和類的套用所需的全部元數據。

2.元數據,提供有關程式集中定義的類型的信息,包括類型的名稱,可見性,基類和類型所實現的接口。注意:程式集清單和元數據說明了程式集是自我描述的。

3.實現這些類型的MSIL代碼。

4.資源集,諸如點陣圖,指針,靜態文本等。

執行功能

1.包含公共語言運行庫執行的代碼。如果可移植可執行 (PE) 檔案沒有相關聯的程式集清單,則將不執行該檔案中的 Microsoft中間語言(MSIL) 代碼。請注意,每個程式集只能有一個入口點(即DllMain、WinMain或 Main)。

程式集形成安全邊界。程式集就是在其中請求和授予許可權的單元。有關套用於程式集的安全邊界的更多信息,請參見程式集安全注意事項。

2.程式集形成類型邊界。每一類型的標識均包括該類型所駐留的程式集的名稱。在一個程式集範圍內載入的 MyType 類型不同於在其他程式集範圍內載入的 MyType 類型。

3.程式集形成引用範圍邊界。程式集的清單包含用於解析類型和滿足資源請求的程式集元數據。它指定在該程式集之外公開的類型和資源。該清單還枚舉它所依賴的其他程式集。

4.程式集形成版本邊界。程式集是公共語言運行庫中最小的可版本化單元,同一程式集中的所有類型和資源均會被版本化為一個單元。程式集的清單描述您為任何依賴項程式集所指定的版本依賴性。

5.程式集形成部署單元。當一個應用程式啟動時,只有該應用程式最初調用的程式集必須存在。其他程式集(例如本地化資源和包含實用工具類的程式集)可以按需檢索。這就使應用程式在第一次下載時保持精簡。

6.程式集是支持涇渭執行的單元。有關運行多個程式集版本的更多信息,請參見程式集和涇渭 (side-by-side) 執行。

總結

程式集可以是靜態的或動態的。靜態程式集可以包括 .NET Framework 類型(接口和類),以及該程式集的資源(點陣圖、JPEG 檔案、資源檔案等)。靜態程式集存儲在磁碟上的可移植可執行 (PE) 檔案中。您還可以使用 .NET Framework 來創建動態程式集,動態程式集直接從記憶體運行並且在執行前不存儲到磁碟上。您可以在執行動態程式集後將它們保存在磁碟上。

有幾種創建程式集的方法。您可以使用過去用來創建 .dll(C#中的類庫檔案) 或 .exe 檔案的開發工具,例如 Visual Studio .NET。您可以使用在 .NET Framework SDK 中提供的工具來創建帶有在其他開發環境中創建的模組的程式集。您還可以使用公共語言運行庫API(例如 Reflection.Emit)來創建動態程式集。

相關詞條

相關搜尋

熱門詞條

聯絡我們