Background:
I am developing an ASP.NET application with a server side plug in architecture.
I define a set of interfaces in a pluginInterfaces .NET assembly.
Third party developers can develop a plugin assembly against these interfaces, place their assembly in a plugin folder, and it will be dynamically loaded to offer new functionality.
The plugins will reference the plugin interfaces assembly.
Problem:
In the future I may update my pluginInterfaces assembly with new functionality, but it will
remain 100% backward compatible (i.e. interfaces will not changed). However the pluginInterfaces assembly will have a new assembly version number.
I want (third party) plugin assemblies to just continue to work.
But they will no longer find the pluginInterfaces assembly that they were built against.
The pluginInterfaces assembly will have a strong name, and hence the plugins will look for
the version with exact matching assembly version.
Question:
What is the best way to achieve this?
Is this what ‘Publisher Policy’ is for?
You could try binding redirection.