It is pretty sad that Microsoft is not providing an ideal way to unload individual assemblies from an application domain :( Right now, if you want to unload individual assemblies, you have to create another app domain, and then load your assemblies to that, and unload the entire app domain once you are done. But this approach has few problems
- If you are loading your assembly to a separate application domain, you have to use remoting for cros app domain calls
- You don't really need a separate app domain to load and unload assemblies - because of performance reasons.
I've read an interesting blog entry from Jason Zanders here