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

本文关键字:卸载 DLL 加载 Assembly LoadFrom 使用 | 更新日期: 2023-09-27 17:59:27

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

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

另一程序正在使用的文件

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

如果打开文件的应用程序是一个自定义应用程序,那么您可以修改它以将DLL加载到另一个AppDomain中。当您想重新加载它时,只需拆下该AppDomain并将新的DLL加载到新的AppDomain中。我会看看MEF(它这样做),看看它是否支持您的用例。

你不能。你必须终止这个程序。无法在.Net中卸载程序集。

阅读这些:

http://blogs.msdn.com/b/jasonz/archive/2004/05/31/145105.aspx

http://blogs.msdn.com/b/suzcook/archive/2003/07/08/unloading-an-assembly.aspx