在我的项目中,我使用反射和 Assembly.LoadFrom()
加载一个 DLL。这是一个小型 DLL,偶尔会在应用程序执行期间动态地(从源代码)重新编译。
有没有办法从应用程序中卸载已加载的 DLL,以便我可以重新加载它?我尝试重新加载它,但出现错误:
file in use by another program
最佳答案
如果打开文件的应用程序是自定义应用程序,则您可以修改它以将 DLL 加载到另一个 AppDomain 中。当您想要重新加载它时,只需拆除该 AppDomain 并将新的 DLL 加载到新的 AppDomain 中即可。我会看看 MEF (哪个执行此操作)以查看这是否支持您的用例。
关于c# - 使用 Assembly.LoadFrom() 加载后卸载 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366035/