System.Reflection.Assembly.LoadFile Locks File
asp.net, plugins, reflection
Solution
If you use this:
System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(path))
It will not lock the file.
Edit
While this works, it is not the best solution, but the better way of doing it is a lot more involved (too much for just pasting all the code here for it).
I have created a public repository on Github here with all the code for doing this properly:
Loading Assemblies without Locking by using Shadow Copying.
Problem
I'm loading a `DLL` via `System.Reflection.Assembly.LoadFile` and reflecting over it's members in a plugin-esque system. I need to be able to update/overwrite these `DLL` while the system is running but it appears that after calling `System.Reflection.Assembly.LoadFile` the file is subsequently locked. Does anyone know of a way to unlock the file? I have read about loading the file in a separate appdomain? Are there any pitfalls to this approach?