Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Assembly.LoadFrom()加载后卸载DLL_C# - Fatal编程技术网

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

C# 使用Assembly.LoadFrom()加载后卸载DLL,c#,C#,在我的项目中,我使用反射和Assembly.LoadFrom()加载DLL。这是一个小DLL,在应用程序执行期间偶尔会(从源代码)动态重新编译 有没有办法从应用程序中卸载加载的DLL,以便我可以重新加载它?我已尝试重新加载,但出现错误: 其他程序正在使用的文件 你不能。你必须终止这个程序。无法在.Net中卸载程序集。如果打开文件的应用程序是自定义应用程序,则可以修改它以将DLL加载到另一个AppDomain中。当您想要重新加载它时,只需拆下该AppDomain并将新的DLL加载到新的AppDom

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

有没有办法从应用程序中卸载加载的DLL,以便我可以重新加载它?我已尝试重新加载,但出现错误:

其他程序正在使用的文件


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

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

阅读以下内容:


您会发现重新启动应用程序比使用AppDomains容易得多。