У меня есть работающее в данный момент приложение (Consuming Application), которое сканирует набор каталогов для плагинов (частей). Все элементы, которые необходимо подключить, наследуются от одного и того же интерфейса (IPlugIn). Эти элементы в каталогах имеют разные проекты, которые предоставляют библиотеки DLL и зависимости.
Однако, если для плагина требуется Unity 4.0. и приложение «Потребление» использует Unity 5.0 (пример зависимости), приложение «Потребление» пытается создать плагин с Unity 5.0, а не 4.0. 4.0 был тем, что плагин был скомпилирован изначально.
Вопрос: Как я могу заставить Приложение-Потребитель составлять плагин с версией Unity 4.0, с которой был создан плагин, а не с версией 5.0, с которой было создано Приложение-Потребитель ???
Я отсканировал литературу по MSDN, но расшифровать ее довольно сложно. Поиск в Интернете практически ничего не дал (возможно, это мои ключевые слова)
AggregateCatalog catalog = new AggregateCatalog();
// Configured Directories
var mefDirectoriesDefined = Properties.Settings.Default.ActionDirectories;
var mefDirectories = mefDirectoriesDefined.Split(',');
foreach (var directory in mefDirectories)
{
if (Directory.Exists(directory))
{
var directoryCatalog = new DirectoryCatalog(directory, "*.Plugin*");
catalog.Catalogs.Add(directoryCatalog);
}
}
CompositionContainer container = new CompositionContainer(catalog);
container.ComposeParts(this);
Опять же, приложение-потребитель формирует части в каталоге, но не с правильными версиями зависимостей.
Спасибо за любую помощь, которую вы можете оказать!