1. 程式人生 > >.Net dll多個同名的程式集版本衝突共存與通過基本程式碼或探測定位程式集方案

.Net dll多個同名的程式集版本衝突共存與通過基本程式碼或探測定位程式集方案

也可以使用當前的繫結上下文確定程式集的位置。 當使用 Assembly.LoadFrom 方法並且在 COM 互操作方案中時,通常會發生這種情況。 如果程式集使用 LoadFrom 方法引用另一個程式集,則可以將呼叫程式集的位置作為在何處查詢引用的程式集的提示。 如果找到匹配項,則載入該程式集。 如果未找到匹配項,執行時就會繼續其搜尋語義,然後請求 Windows Installer 提供程式集。 如果提供的程式集與繫結請求均不匹配,則引發異常。

例如,如果 Assembly1 引用 Assembly2,而 Assembly1 是從 http://www.code.microsoft.com/utils 下載的,則可以將該位置作為查詢 Assembly2.dll 的提示。

然後,執行時在 http://www.code.microsoft.com/utils/Assembly2.dll 和 http://www.code.microsoft.com/utils/Assembly2/Assembly2.dll 中探測程式集。 如果在這兩個位置均未找到 Assembly2,則執行時向 Windows Installer 發出請求。