My scenario is a classic MEF scenario. There is a silverlight host app, and the app can download plugins on the fly to add functionality. Plug ins can be created by third parties.
Now the problem arises when different plugins and/or the host app reference different versions of the same assembly.
For example:
-plugin A references the version 1.0 of the silverlight toolkit dll and plugin B references the version 2.0 of the same dll.
OR
-host app references the version 1.0 of the reactive extensions dll and plugin C refernces the version 2.0 of the same dll.
That is a problem that is extremely likely to happen. Plugins and the host are all meant to be independent but with this problem in mind, I realise that a given plugin could work for a while, and then I update a reference of the host app, or add a new plugin, causing another plugin to break.
I've done some research on Silverlight Assembly loading and I believe that only one version of a given assembly can be loaded at a time. Therefore I don't know how to handle this.
Any ideas on that ?