Я использую MEF в silverlight для динамической загрузки некоторых плагинов из вторичного файла xap. Этот вторичный файл XAP создается на основе проекта, который ссылается на различные проекты плагинов, все из которых созданы на основе библиотек DLL, которые уже находятся в первичном файле XAP.
Таким образом, я хочу довольно явный контроль над тем, какие библиотеки DLL попадают во вторичный xap. Включение любых dll из основного файла xap является избыточным (а также вызывает проблемы с перекомпоновкой MEF). Но Visual Studio, похоже, настаивает на включении различных зависимых dll, даже если для свойства CopyLocal установлено значение True только для ссылок на проекты плагинов.
Пока что единственное, что я обнаружил, что работает, - это добавить явные ссылки на всегда включаемые библиотеки DLL в проект верхнего уровня, который строит вторичный xap, и установить для CopyLocal значение False в свойствах ссылки. Но это хрупко, поскольку зависимости меняются.
Я неправильно об этом думаю? Должен ли я просто создавать отдельный xap для каждой dll плагина (в этом случае установка CopyLocal на false для всех ссылок, похоже, работает)?