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.