相关疑难解决方法(0)

使用Assembly.LoadFrom和Assembly.Load混合加载程序集时的奇怪行为

使用Assembly.LoadFrom和Assembly.Load混合加载程序集时的奇怪行为

使用Assembly.LoadFrom以及稍后使用Assembly.Load加载程序集时,我遇到了一种奇怪的行为.
我正在使用Assembly.LoadFrom加载程序集,其中程序集位于不是执行文件夹的文件夹中.

稍后在我的测试代码中,当我尝试使用Assembly.Load再次加载此程序集时,加载失败并出现System.IO.FileNotFoundException("无法加载文件或程序集......"),尽管程序集已经加载.使用强名称和非强名称加载失败(再次加载此装配的原始原因是使用BinaryFormatter).

但是,如果程序集位于执行文件夹中,则后两次加载在两种情况下都会成功,具有强名称和非强名称.在这种情况下,您可以看到两个相同的装配从两个不同的位置加载.

一个重新创建此问题的简单代码示例 -

程序集assembly1 = Assembly.LoadFrom(@"C:\ a.dll");

//使用强名称加载失败程序集assembly2 = Assembly.Load(@"a,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 14986c3f172d1c2c");

//也加载非强大的失败程序集assembly3 = Assembly.Load(@"a");

  1. CLR忽略已经加载的程序集的任何解释?
  2. 任何想法我怎样才能缓解这个问题?

谢谢.

.net assemblies assembly.load

5
推荐指数
2
解决办法
2059
查看次数

标签 统计

.net ×1

assemblies ×1

assembly.load ×1