W
Weston Weems
Ok,
I've been quite successful on my own building a plugin framework that
appears to be working quite well. I can manually unload/reload etc,
however, the original app domain is retaining a lock on the shadowcopied
assembly. I've done a fair ammount of research before resorting to this.
My model is like the following.
------------- -------------- ---------------
PluginLoader RemoteLoader MyPlugin:IPlugin
------------- -------------- ---------------
plugincollection LoadPlugins
LoadPlugins
Basically, I instantiate a plugin loader which creates a new appdomain
with setup info for shadow copying etc. It instantiates remoteloader
with a plugin path.
LoadPlugins on PluginLoader calls LoadPlugins which returns a
IPluginCollection which is a collection of instantiated types etc.
I beleive my problem is that because I set a local var in my app to
return value from pluginLoader.LoadPlugins that its hanging on to the
original files.
How could I remedy this situation? I'd like to be able to
delete/overwrite dlls on the fly. How do you guys do it?
Thanks in advance
Weston Weems
I've been quite successful on my own building a plugin framework that
appears to be working quite well. I can manually unload/reload etc,
however, the original app domain is retaining a lock on the shadowcopied
assembly. I've done a fair ammount of research before resorting to this.
My model is like the following.
------------- -------------- ---------------
PluginLoader RemoteLoader MyPlugin:IPlugin
------------- -------------- ---------------
plugincollection LoadPlugins
LoadPlugins
Basically, I instantiate a plugin loader which creates a new appdomain
with setup info for shadow copying etc. It instantiates remoteloader
with a plugin path.
LoadPlugins on PluginLoader calls LoadPlugins which returns a
IPluginCollection which is a collection of instantiated types etc.
I beleive my problem is that because I set a local var in my app to
return value from pluginLoader.LoadPlugins that its hanging on to the
original files.
How could I remedy this situation? I'd like to be able to
delete/overwrite dlls on the fly. How do you guys do it?
Thanks in advance
Weston Weems