How do I implement .net plugins without using AppDomains?

Posted by Abtin Forouzandeh on Stack Overflow See other posts from Stack Overflow or by Abtin Forouzandeh
Published on 2009-01-19T18:53:14Z Indexed on 2010/03/25 19:13 UTC
Read the original article Hit count: 220

Filed under:
|
|
|
|

Problem statement: Implement a plug-in system that allows the associated assemblies to be overwritten (avoid file locking). In .Net, specific assemblies may not be unloaded, only entire AppDomains may be unloaded.

I'm posting this because when I was trying to solve the problem, every solution made reference to using multiple AppDomains. Multiple AppDomains are very hard to implement correctly, even when architected at the start of a project.

Also, AppDomains didn't work for me because I needed to transfer Type across domains as a setting for Speech Server worfklow's InvokeWorkflow activity. Unfortunately, sending a type across domains causes the assembly to be injected into the local AppDomain.

Also, this is relevant to IIS. IIS has a Shadow Copy setting that allows an executing assembly to be overwritten while its loaded into memory. The problem is that (at least under XP, didnt test on production 2003 servers) when you programmatically load an assembly, the shadow copy doesnt work (because you are loading the DLL, not IIS).

© Stack Overflow or respective owner

Related posts about c#

Related posts about assemblies