Assembly.LoadFrom加载错误的程序集

时间:2013-06-06 12:23:45

标签: c# memory-management dll resources

我正在使用Assembly.LoadFrom加载我的dll并稍后创建它的实例。

这是我的问题。 有时候我可以修改我的dll。更准确地说,我删除它并创建一个具有相同名称和路径的新的。当我再次实例化它并调用方法时,我看到正在使用的实例是第一个。

如果我关闭我的应用程序并调用我的方法,则正在使用好的实例。

那么有没有办法解除分配资源或释放实例?这是我的示例代码

Assembly sampleAssembly = Assembly.LoadFrom(pathToDll);
MyClassEntity = sampleAssembly.CreateInstance("InstanceName") as MyClass;

MyClass是一个抽象类。

1 个答案:

答案 0 :(得分:2)

程序集加载一次并保存在内存中。您必须将其加载到单独的AppDomain中并删除域以清除加载的程序集。

请参阅此链接:http://msdn.microsoft.com/en-us/library/vstudio/ms173101.aspx

而且:How to reload an assembly for a .NET Application Domain?