L
Luciano
Hi,
I'm facing a problem that could be completely resolved using .policy
files, but I could not use GAC in my application.
Basically the app should follow the "Smart Client" guidelines. All the
application plug-ins (implemented as .NET assemblies) should be placed
in a common folder shared among different workstations using remote
folders. So I cannot use the GAC facilities.
Until the plug-ins are implemented as single assembly, all is working
fine. I'm parsing the remote "plugin" folder and load all assemblies
using Assembly.LoadFrom method. I'm using a single AppDomain.
The problem is coming up now that we need to write several multi-
assembly plugins. We basically need to write one or more common core
assemblies (as "infrastructure" for these plugins) that will be
referred by each plugin.
The core assemblies should be versioned and shipped bundled in each
plugin package.
I need to declare backward compatiblity in the core assemblies to:
a) avoid to have multiple version of core assemblies loaded in memory;
b) to efficiently implement an inter-plugin communication layer.
To have this working I need to declare a binding redirect (as in the
app.config file). But I cannot change that .config file because
several application version could be installed on each workstation.
I basically need to use Publisher Configuration File, so each core
assembly could declare redirection from the older compatible versions.
A possible (but unwanted) solution for that is that the applciation
updates its private app.config file once all the plugins are parsed
and all dependencies are collected, and then restart the application
with the correct redirection of the "core" assemblies of the plug-ins
side.
It is possible to avoid that and use .policy files even in a non-GAC
scenario? All the assemblies are strong-named.
Please help!
Thanks in advance,
Luciano
I'm facing a problem that could be completely resolved using .policy
files, but I could not use GAC in my application.
Basically the app should follow the "Smart Client" guidelines. All the
application plug-ins (implemented as .NET assemblies) should be placed
in a common folder shared among different workstations using remote
folders. So I cannot use the GAC facilities.
Until the plug-ins are implemented as single assembly, all is working
fine. I'm parsing the remote "plugin" folder and load all assemblies
using Assembly.LoadFrom method. I'm using a single AppDomain.
The problem is coming up now that we need to write several multi-
assembly plugins. We basically need to write one or more common core
assemblies (as "infrastructure" for these plugins) that will be
referred by each plugin.
The core assemblies should be versioned and shipped bundled in each
plugin package.
I need to declare backward compatiblity in the core assemblies to:
a) avoid to have multiple version of core assemblies loaded in memory;
b) to efficiently implement an inter-plugin communication layer.
To have this working I need to declare a binding redirect (as in the
app.config file). But I cannot change that .config file because
several application version could be installed on each workstation.
I basically need to use Publisher Configuration File, so each core
assembly could declare redirection from the older compatible versions.
A possible (but unwanted) solution for that is that the applciation
updates its private app.config file once all the plugins are parsed
and all dependencies are collected, and then restart the application
with the correct redirection of the "core" assemblies of the plug-ins
side.
It is possible to avoid that and use .policy files even in a non-GAC
scenario? All the assemblies are strong-named.
Please help!
Thanks in advance,
Luciano