Hot Unload/Reload of a DLL used by an Application
It's been quite a while since I looked at this but I'm fairly sure that you'd need to create a new AppDomain and then load the DLL inside there.
The reason is that you can't unload an Assembly
by it self but you can unload an AppDomain
that contains an Assembly
.
Once an assembly has been loaded into an AppDomain
, it cannot be unloaded. You have to dispose of the AppDomain
. If you need to load and unload assemblies within an application, you'll need to spawn a new AppDomain
and load the assembly, then destroy the AppDomain
once you're finished with the assembly.