是否有一种方法来删除.dll文件,而不使用单独的应用程序域

本文关键字:文件 应用程序域 单独 dll 删除 方法 一种 是否 | 更新日期: 2023-09-27 18:04:53

我使用CodeDOM动态生成类。我正在指定输出程序集,因此使用类名创建.dll。然而,这些类需要用相同的类名更新,因此类将被更新,而.dll将不被更新(因为它不能覆盖以前的.dll)。我想知道是否有一种方法可以调用一个方法来删除这个。dll,然后当我生成新的类时,新的。dll将出现在那里。我知道我可以使用应用程序域,但问题是我需要经常更新类,我认为性能会受到很大影响。

是否有一种方法来删除.dll文件,而不使用单独的应用程序域

当且仅当该DLL文件当前未打开时,可以删除/重新创建DLL。如果一个或多个应用程序域已将DLL代码加载到该域,则打开该域。

没有从应用程序域中卸载DLL的工具。你必须卸载app域才能卸载它引用的所有dll。

更新

我不知道Roslyn有能力根据@SLaks的建议在内存中编译。如果您没有绑定到物理DLL,请查看这篇文章。