程式集清單是Net Framework 中的文字檔案，包含了 CLI 程式集的元資料，包括程式集的組建間的依賴關係、解決資源與類的引用、版本資訊、作用域資訊、安全許可等。儲存在 PE 檔案 exe 或dll 用通用中間語言 MSIL 程式碼表示。 嵌入到程式集中的程式集清單可用 Microsoft Windows SDK 中的 IL 反彙編程式 ILDASMexe 檢視。 程式集清單的內容 下表的前四行：程式集名字、版本號、culture、強名字資訊，組成了程式集的 identity。 程式集清單的內容 資訊 描述 Assembly name 一個文字字串指出程式集的名字。 Version number 主版本號、次版本號、revision 號、build 號。通用語言執行時使用這些版本號執行版本政策（version policy）。 Culture 該程式集支援的文化或語言的資訊。 一個帶有 culture 資訊的程式集自動被認為是一個 satellite 程式集。 Strong name information 對於一個被給定一個強名字程式集，釋出者的公鑰 程式集中所有檔案的列表 包含在程式集中的每個檔案的雜湊值與檔名。注意，組成程式集的所有檔案必須在包含了程式集清單的檔案所在的目錄中。 型別推導資訊 對於程式集輸出的型別，通用語言執行時使用該資訊把型別推導對映到包含了該型別宣告與實現的那個檔案。 被引用的程式集的資訊 當前程式集靜態引用的其他程式集的列表。每個引用包含了被依賴的程式集的名字、版本、culture、作業系統等等，以及公鑰（如果被依賴的程式集是強名字）。 NET 實現 Manifest 是一個以manifest 為字尾的 XML 檔案。其內部的資訊： assemblyIdentity 元素則標識著一個唯一的程式集 指定了組成程式集的檔案及 Windows 類。 作業系統首先讀取 Manifest，獲得 exe 檔案需要呼叫的 DLL 的 manifest。再根據據此資訊去尋找對應的 DLL。這樣就可能區別不同版本的同一個 DLL 檔案。 共享程式集的 Manifests 儲存在 WINDOWSWinSxSManifests 目錄中。這是 Windows XP 以上版本作業系統提供的非託管（多版本）並行快取（sidebyside cache）中安裝了強名字的系統庫的程式集清單。在 WinSxS 目錄下，每個程式集都會有一個目錄，另外，還有兩個目錄分別是 Manifests 和 Policies，其中包含了版本的相關資訊。例如： xml version10 encodingUTF8 standaloneyes assembly xmlnsurnschemasmicrosoftcomasmv1 manifestVersion10 noInheritablenoInheritable assemblyIdentity typewin32 nameMicrosoftVC80CRT version805072742 processorArchitecturex86 publicKeyToken1fc8b3b9a1e18e3bassemblyIdentity file namemsvcr80dll hash2a0d797a8c5eac76e54e98db9682e0938c614b45 hashalgSHA1 asmv2hash xmlnsasmv2urnschemasmicrosoftcomasmv2 xmlnsdsighttpwwww3org200009xmldsig dsigTransforms dsigTransform AlgorithmurnschemasmicrosoftcomHashTransformsIdentitydsigTransform dsigTransforms dsigDigestMethod Algorithmhttpwwww3org200009xmldsigsha1dsigDigestMethod dsigDigestValuephRUExlAeZ8BwmlD8VlO5udAnREdsigDigestValue asmv2hash file file namemsvcp80dll hashcc4ca55fb6aa6b7bb8577ab4b649ab77e42f8f91 hashalgSHA1 asmv2hash xmlnsasmv2urnschemasmicrosoftcomasmv2 xmlnsdsighttpwwww3org200009xmldsig dsigTransforms dsigTransform AlgorithmurnschemasmicrosoftcomHashTransformsIdentitydsigTransform dsigTransforms dsigDigestMethod Algorithmhttpwwww3org200009xmldsigsha1dsigDigestMethod dsigDigestValue7AY1JqoUvK3u6bYWbOagGgAFbcdsigDigestValue asmv2hash file file namemsvcm80dll hash55e8e87bbde00d1d96cc119ccd94e0c02c9a2768 hashalgSHA1 asmv2hash xmlnsasmv2urnschemasmicrosoftcomasmv2 xmlnsdsighttpwwww3org200009xmldsig dsigTransforms dsigTransform AlgorithmurnschemasmicrosoftcomHashTransformsIdentitydsigTransform dsigTransforms dsigDigestMethod Algorithmhttpwwww3org200009xmldsigsha1dsigDigestMethod dsigDigestValuehWq8zazTsMeKVxWFBa6bnv4hEOwdsigDigestValue asmv2hash file assembly 使用者： xml version10 encodingUTF8 standaloneyes assembly xmlnsurnschemasmicrosoftcomasmv1 manifestVersion10 dependency dependentAssembly assemblyIdentity typewin32 nameMicrosoftVC80CRT version80506080 processorArchitecturex86 publicKeyToken1fc8b3b9a1e18e3b dependentAssembly dependency assembly 在 WINDOWSWinSxSPolicies 目錄下的 Policy 檔案，來指出老版本到新版本的確認對映關係。解決庫升級帶來的版本相容問題。例如： xml version10 encodingUTF8 standaloneyes Copyright 19812001 Microsoft Corporation assembly xmlnsurnschemasmicrosoftcomasmv1 manifestVersion10 assemblyIdentity typewin32policy namepolicy80MicrosoftVC80CRT version805072742 processorArchitecturex86 publicKeyToken1fc8b3b9a1e18e3b dependency dependentAssembly assemblyIdentity typewin32 nameMicrosoftVC80CRT processorArchitecturex86 publicKeyToken1fc8b3b9a1e18e3b bindingRedirect oldVersion804120425680506080 newVersion805072742 dependentAssembly dependency assembly 其中 bindingRedirect 標籤便指定了所有 804120425680506080 版本的需求，對映到 805072742 這個系統中安裝的比較新的版本的庫。 參考文獻 Category 通用語言基礎設施