asp.net - System.Reflection.Assembly.LoadFile 锁定文件

标签 asp.net reflection plugins

我正在通过 System.Reflection.Assembly.LoadFile 加载 DLL 并在插件式系统中反射(reflect)它的成员。 我需要能够在系统运行时更新/覆盖这些DLL,但似乎在调用System.Reflection.Assembly.LoadFile之后,文件随后被锁定。< br/> 有谁知道解锁文件的方法吗?
我已阅读有关在单独的应用程序域中加载文件的信息?这种方法有什么陷阱吗?

最佳答案

如果你使用这个:

 System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(path))

它不会锁定文件。

编辑

<小时/>

虽然这有效,但它不是最好的解决方案,但是更好的方法涉及更多内容(对于仅将所有代码粘贴到此处来说太多了)。

我已经在 Github 上创建了一个公共(public)存储库,其中包含正确执行此操作的所有代码:

Loading Assemblies without Locking by using Shadow Copying.

关于asp.net - System.Reflection.Assembly.LoadFile 锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1031431/

相关文章:

c# - 将 WCF 服务添加到网站项目

.net - IKVM.Reflection.Emit 和 Mono.Cecil 的区别

java - 对接口(interface)重写方法的反射(reflection)

android - 如何在我的 flutter 项目中实现 flutter Text to Speech

javascript - ionic2 项目的自定义 cordova 插件创建

Javascript 与对话框同时关闭浏览器窗口

javascript - 检测浏览器关闭所有条件

asp.net - 一个更新面板与多个更新面板

java - json 到 java 对象的通用解析

c++ - 可以加载 C/C++ 和 Python 插件的应用程序