2010-02-16 57 views
1

在做的C#源代码编译的动态,如果我们碰巧尝试执行编译的目标DLL(例如tmp901.tmp.dll)具有丢失的引用,例如:清除NET反射缓存

InnerException:无法加载文件或程序集'_O2_Scanner_MsCatNet,版本= 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一。

似乎有一个问题,即在该进程期间该程序集永远不会被解析,即使该文件被复制到正在执行目标程序集(tmp901.tmp.dll)的位置从。似乎有一个缓存问题正在进行,阻止了对dll存在的重新检查。

当前的解决方案是重新启动主机.NET应用程序,这是不实际的。

回答

0

一旦装配加载失败,我相信你仍然可以使用Assembly.LoadAssembly.LoadFile手动加载装配。这应该允许你强制装配,即使它失败了一次。