我正在通过System.Reflection.Assembly.LoadFile
加载一个DLL
,并将其成员反映在一个类似插件的系统中.
我需要能够在系统运行时更新/覆盖这DLL
个,但似乎在呼叫System.Reflection.Assembly.LoadFile
之后,该文件随后被锁定.
有人知道解锁文件的方法吗?
我读到过关于在单独的应用程序域中加载文件的内容?这种方法有什么缺陷吗?
我正在通过System.Reflection.Assembly.LoadFile
加载一个DLL
,并将其成员反映在一个类似插件的系统中.
我需要能够在系统运行时更新/覆盖这DLL
个,但似乎在呼叫System.Reflection.Assembly.LoadFile
之后,该文件随后被锁定.
有人知道解锁文件的方法吗?
我读到过关于在单独的应用程序域中加载文件的内容?这种方法有什么缺陷吗?
如果你用这个:
System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(path))
它不会锁定文件.
虽然这是可行的,但是更好的方法要复杂得多(仅仅在这里粘贴所有代码就太难了).
我在Github上创建了一个公共存储库,其中包含正确执行此操作的所有代码: