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

标签 c#

在我的项目中,我使用反射和 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/

相关文章:

C# 生成新任务

c# - 自定义查询结果

c# - 如何使用 Not In datatable.select

c# - 无法从 WPF 扩展工具包为 AutoCompleteTextBox 设置 "Item Source"

c# - 在操作结果中将 EditorTemplate 作为 PartialView 返回

c# - Lambda 解释和它是什么以及一个很好的例子

c# - 如何使用 Arc Segment 绘制具有恒定半径的半圆段

c# - 使用 C# 解析复杂的 JSON 对象

c# - 如何以编程方式在Basic版本中创建sql数据库?在 Windows Azure 中

c# - Excel Range C# 中的非空单元格