我们有两个不同的应用程序(使用.NET开发):
1st App:Winservice。
第二个应用程序:桌面应用程序。
桌面应用正在从GAC加载程序集。 Winservice 过去做过同样的事情,但现在我们需要Winservice从其他位置加载相同的组件。
但是GAC赢了,我们无法使用这个Winservice(使用app.config中的代码库)来加载程序集。它总是得到GAC的。
如果我们删除GAC的那个。有用。但我们需要其他行为。来自GAC和Winservice的桌面来自代码库中定义的路径。
这是否可以在不更改装配版本的情况下实现?
答案 0 :(得分:1)
如果没有某种修改程序集的工作,这是不可能的。简而言之,GAC总是获胜。期。如果程序集具有强名称,则始终首先检查GAC。即使您将其作为字节数组加载到内存中并使用Assembly.Load(byte[])
,也会检查强名称,如果它是GAC程序集,则会从GAC加载。
几种可能的解决方法: