【发布时间】:2014-08-12 18:44:29
【问题描述】:
我们有 2 个不同的应用程序(使用 .NET 开发):
第一个应用程序:Winservice。
第二个应用程序:桌面应用程序。
桌面应用正在从 GAC 加载程序集。 Winservice 过去做同样的事情,但现在我们需要 Winservice 从另一个位置加载相同的程序集。
但是 GAC 获胜了,我们不能让这个 Winservice(使用 app.config 中的代码库)来加载程序集。它总是得到 GAC 的支持。
如果我们删除 GAC 的那个。有用。但我们需要其他行为。来自 GAC 的桌面和来自代码库中定义路径的 Winservice。
是否可以在不更改程序集版本的情况下做到这一点?
【问题讨论】:
-
相对于 Winservice 的程序集在哪里?还是未知的动态值?
-
正在动态加载程序集的位置(使用 CurrentDomain.CreateInstanceAndUnwrap())。从与 Winservice 基本路径无关的位置。
-
@mclaassen 我已经尝试过 currentDomain.AssemblyResolve 但该事件永远不会被触发。可能是因为我们加载程序集的方式。
标签: c# .net .net-assembly gac