【发布时间】:2010-10-15 21:03:24
【问题描述】:
我有一个加载两个程序集 dll 的应用程序。第一个 dll 是一个通用 dll,第二个 dll 引用了第一个 dll 的另一个版本。所有程序集均未签名。
App.exe --> dll1_v1.dll, dll2.dll
dll2.dll --> dll1_v2.dll
dll1_v1.dll 和 dll1_v2.dll 的类型相同,但实现不同。
如果我在 exe 的代码库路径中同时拥有 dll1_v1.dll 和 dll1_v2.dll,那么它们都会被加载,并且 app.exe 中的所有对象实例都指向 dll1_v1.dll,而 dll2 中的所有对象实例都指向 dll1_v2.dll。
如果我需要将 dll1_v2 指向 dll1_v1,从代码库中删除 dll1_v2.dll 并添加 AssemblyResolve 事件处理程序是否正确,以便我可以返回 dll1_v1.dll 的程序集来代替 dll1_v1.dll?
【问题讨论】:
-
在您的应用程序中删除对 DLL_v1 的引用是否只是回避了问题?我不记得您是否无法访问这些类型,因为它们是间接引用程序集中的依赖项。
标签: .net