CLR查找和載入程式集的方式(二) 流程圖
- 2019 年 10 月 4 日
- 筆記
在前一篇文章《CLR查找和載入程式集的方式(一)》中詳細介紹了CLR查找和載入程式的方式,分別介紹了配置與程式碼的實現方式。
本篇通過一個具體的流程圖來幫助大家更加直觀明了深入的掌握CLR查找DLL程式集的方式。

說明:
(1) 初始化綁定:從元數據中取出相關的AssemblyRef記錄,並查看其中包括什麼內容--它的外部程式集名稱,它是否經過強命名,是否指定了文化等。
(2) 應用版本策略:這是一些由應用程式、被引用的共享程式集發布者或管理員生成的語句。這些語句包含在XML配置文件中,並且只是將程式集的特定版本(或一組版本)重定向到不同的版本。
(3) codebase:該節點是一個特殊的設置,在配置文件中明確地指定某個程式集的查找路徑,這個規則具有最高的優先順序。
而且如果你做了設置,CLR就一定會按照你的設置去查找,如果找不到,它就報告失敗,而不會繼續查找其他路徑。
需要注意的是,如果程式集是經過了強名稱簽名,則在定義codebase的時候,應該註明publicKeyToken。
關於probing與codeBase節點設置
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <runtime> 4 <!--雙核以上電腦請開啟下面的選項為 true--> 5 <gcServer enabled="false" /> 6 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 7 <dependentAssembly> 8 <probing privatePath="bin;bin2subbin;bin3"/> 9 <assemblyIdentity name="MyTestNetLibrary" 10 publicKeyToken="bf715e7d53keacd4" 11 culture="neutral" /> 12 <codeBase version="1.0.1.0" href="CodeBaseMyTestNetLibrary.dll" /> 13 </dependentAssembly> 14 </assemblyBinding> 15 </runtime> 16 </configuration>