使用Assembly.LoadFrom()加载后卸载DLL

时间:2011-06-16 00:55:01

标签: c#

在我的项目中,我使用反射和Assembly.LoadFrom()加载DLL。这是一个小型DLL,偶尔会在应用程序执行期间动态地重新编译(从源代码)。

有没有办法从应用程序卸载加载的DLL,以便我可以重新加载它?我已经尝试重新加载它,但是我收到了一个错误:

  

另一个程序正在使用的文件

3 个答案:

答案 0 :(得分:1)

如果打开文件的应用程序是自定义应用程序,则可以修改它以将DLL加载到另一个AppDomain中。如果要重新加载它,只需拆除该AppDomain并将新DLL加载到新的AppDomain中。我看看MEF(这样做)看看这是否可能支持你的用例。

答案 1 :(得分:0)

你做不到。你必须杀死该程序。无法在.Net中卸载程序集。

答案 2 :(得分:0)