程式集清單
程式集清單(英語:assembly manifest)是 . Net Framework 中的文字檔案,包括著矣 CLI 程式集的元資料,包括程式集的組建間的依賴關係、解決資源佮類的參照、版本資訊、作用域資訊、安全許可等。儉佇咧 PE 檔案 ( . exe 抑是 . dll ) 用通用中央語言 ( MSIL ) 代碼表示。
1875入去程式集中的程式集清單通用 Windows SDK 中的 IL 反組譯程式 ( ILDASM . exe ) 檢視。
程式集清單的內容
下表的前四行:程式集名、版本號、culture、強名字資訊,組成程式集的 identity。
. NET 實現
Manifest 是一个以 . manifest 為字尾的 XML 檔案。其內部的資訊:
- < assemblyIdentity > 元素標識著一个唯一的程式集
- 指定了組成程式集的檔案佮 Windows 類。
作業系統首先讀的取 Manifest,得著 exe 檔案需要呼叫的 DLL 的 manifest。閣根據這个資訊去走揣對應的 DLL。按呢就可能分別無仝版本的仝一个 DLL 檔案。
共享程式集的 Manifests 儉佇咧 WINDOWS / WinSxS / Manifests kha-tá-lok-guh 中。這是 Windows XP 以上版本作業系統提供的非代管(多版本)列緊取(side-by-side cache)中安裝矣強名的系統庫的程式集清單。佇咧 WinSxS kha-tá-lok-guh 落,每一个程式集攏會有一个 kha-tá-lok-guh,另外咧,閣有兩个 kha-tá-lok-guh 分別是 Manifests 和 Policies,其中有包括著版本的相關資訊。比如講:
使用者:
佇咧 WINDOWS / WinSxS / Policies kha-tá-lok-guh 落來的 Policy 檔案,來指出老版本到新版本的確認對映關係。解決庫升級帶來的版本相容問題。比如講:
其中 < bindingRedirect > 標籤便指定矣所有八配零 . 四四一千兩百空四孵二五六鼻八陽空 . 五孵空六百空八八堵空版本的需求,對映到八堵空 . 五孵空七百二十七孵四二這个系統中安裝的較新的版本的庫。