Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / prism 4.1+ mef не загружаются модули / 2 сообщений из 2, страница 1 из 1
10.08.2012, 17:26
    #37912605
S_A_V_e
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
prism 4.1+ mef не загружаются модули
Доброго времени суток.

Есть приложение под SL4 на prism 4.0 . В приложении динамически подгружается модуль (Test.xap который лежит в ClientBin).

В Bootstrapper-e
Код: c#
1.
2.
3.
4.
protected override IModuleCatalog CreateModuleCatalog()
        {
           return Microsoft.Practices.Composite.Modularity.ModuleCatalog.CreateFromXaml(new Uri("/MyLink;component/ModulesCatalog.xaml", UriKind.Relative));
        }


затем
Код: c#
1.
2.
3.
4.
...
IModuleManager mManager = this.Container.GetExportedValue<IModuleManager>();
                        
mManager.LoadModule("TestModule");



сам модуль

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
[ModuleExport("TestModule", typeof(TestModule))]
    public class TestModule : IModule
    {

        #region Члены IModule

        public void Initialize()
        {
            //throw new NotImplementedException();
        }

        #endregion
    }



В 4.0 модуль загружается и проходит инициализация

Пытаюсь перевести тот же проект на prism 4.1 под SL5. При загрузке модуля получаю исключение:

Exception
System.ComponentModel.Composition.ChangeRejectedException произошло
Message=Составление не изменено. Изменения были отклонены из-за следующих ошибок: При составлении возникло несколько ошибок по 15 основным причинам. Основные причины указаны ниже. Дополнительные сведения см. в свойстве CompositionException.Errors.

1) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleInitializer..ctor (Parameter="downloadedPartCatalogs", ContractName="Microsoft.Practices.Prism.MefExtensions.Modularity.DownloadedPartCatalogCollection")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleInitializer".

2) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager.MefXapModuleTypeLoader (ContractName="Microsoft.Practices.Prism.MefExtensions.Modularity.MefXapModuleTypeLoader")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager".

3) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager..ctor (Parameter="moduleInitializer", ContractName="Microsoft.Practices.Prism.Modularity.IModuleInitializer")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager".

4) Найдено более одной операции экспорта, соответствующей ограничению "((exportDefinition.ContractName == "Microsoft.Practices.Prism.Regions.RegionAdapterMappings") AndAlso (exportDefinition.Metadata.ContainsKey("ExportTypeIdentity") AndAlso "Microsoft.Practices.Prism.Regions.RegionAdapterMappings".Equals(exportDefinition.Metadata.get_Item("ExportTypeIdentity"))))".

Результат: Не удается задать импорт "Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior..ctor (Parameter="regionAdapterMappings", ContractName="Microsoft.Practices.Prism.Regions.RegionAdapterMappings")" в часть "Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior".
Элемент: Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior..ctor (Parameter="regionAdapterMappings", ContractName="Microsoft.Practices.Prism.Regions.RegionAdapterMappings") --> Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefDelayedRegionCreationBehavior --> AssemblyCatalog (Assembly="Microsoft.Practices.Prism.MefExtensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null")

5) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager.MefXapModuleTypeLoader (ContractName="Microsoft.Practices.Prism.MefExtensions.Modularity.MefXapModuleTypeLoader")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager".

6) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager..ctor (Parameter="moduleInitializer", ContractName="Microsoft.Practices.Prism.Modularity.IModuleInitializer")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager".

7) Найдено более одной операции экспорта, соответствующей ограничению "((exportDefinition.ContractName == "Microsoft.Practices.Prism.Regions.IRegionViewRegistry") AndAlso (exportDefinition.Metadata.ContainsKey("ExportTypeIdentity") AndAlso "Microsoft.Practices.Prism.Regions.IRegionViewRegistry".Equals(exportDefinition.Metadata.get_Item("ExportTypeIdentity"))))".

Результат: Не удается задать импорт "Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefAutoPopulateRegionBehavior..ctor (Parameter="regionViewRegistry", ContractName="Microsoft.Practices.Prism.Regions.IRegionViewRegistry")" в часть "Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefAutoPopulateRegionBehavior".
Элемент: Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefAutoPopulateRegionBehavior..ctor (Parameter="regionViewRegistry", ContractName="Microsoft.Practices.Prism.Regions.IRegionViewRegistry") --> Microsoft.Practices.Prism.MefExtensions.Regions.Behaviors.MefAutoPopulateRegionBehavior --> AssemblyCatalog (Assembly="Microsoft.Practices.Prism.MefExtensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null")

8) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager.MefXapModuleTypeLoader (ContractName="Microsoft.Practices.Prism.MefExtensions.Modularity.MefXapModuleTypeLoader")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager".

9) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager..ctor (Parameter="moduleInitializer", ContractName="Microsoft.Practices.Prism.Modularity.IModuleInitializer")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleManager".

10) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Regions.MefTabControlRegionAdapter..ctor (Parameter="regionBehaviorFactory", ContractName="Microsoft.Practices.Prism.Regions.IRegionBehaviorFactory")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Regions.MefTabControlRegionAdapter".

11) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Regions.MefSelectorRegionAdapter..ctor (Parameter="regionBehaviorFactory", ContractName="Microsoft.Practices.Prism.Regions.IRegionBehaviorFactory")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Regions.MefSelectorRegionAdapter".

12) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Regions.MefItemsControlRegionAdapter..ctor (Parameter="regionBehaviorFactory", ContractName="Microsoft.Practices.Prism.Regions.IRegionBehaviorFactory")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Regions.MefItemsControlRegionAdapter".

13) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Regions.MefContentControlRegionAdapter..ctor (Parameter="regionBehaviorFactory", ContractName="Microsoft.Practices.Prism.Regions.IRegionBehaviorFactory")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Regions.MefContentControlRegionAdapter".

14) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Modularity.MefXapModuleTypeLoader..ctor (Parameter="downloadedPartCatalogs", ContractName="Microsoft.Practices.Prism.MefExtensions.Modularity.DownloadedPartCatalogCollection")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Modularity.MefXapModuleTypeLoader".

15) Изменение операций экспорта невозможно из-за того, что импорт "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleInitializer..ctor (Parameter="downloadedPartCatalogs", ContractName="Microsoft.Practices.Prism.MefExtensions.Modularity.DownloadedPartCatalogCollection")" не поддерживает составление для части "Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleInitializer".

StackTrace:
в System.ComponentModel.Composition.CompositionResult.ThrowOnErrors(AtomicComposition atomicComposition)
в System.ComponentModel.Composition.Hosting.ExportProvider.OnExportsChanging(ExportsChangeEventArgs e)
в System.ComponentModel.Composition.Hosting.CatalogExportProvider.OnCatalogChanging(Object sender, ComposablePartCatalogChangeEventArgs e)
в System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.OnChanging(Object sender, ComposablePartCatalogChangeEventArgs e)
в System.ComponentModel.Composition.Hosting.AggregateCatalog.OnChanging(ComposablePartCatalogChangeEventArgs e)
в System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.RaiseChangingEvent(Lazy`1 addedDefinitions, Lazy`1 removedDefinitions, AtomicComposition atomicComposition)
в System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.Add(ComposablePartCatalog item)
в Microsoft.Practices.Prism.MefExtensions.Modularity.MefModuleInitializer.CreateModule(ModuleInfo moduleInfo)
InnerException:



Код проектов совпадает один в один (за исключением ссылок на сборки и юзингов).
Подскажите пожалуйста в чём проблема. Может кто сталкивался с таким.... Поиск в интернете ничего не дал.
...
Рейтинг: 0 / 0
10.08.2012, 18:58
    #37912717
S_A_V_e
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
prism 4.1+ mef не загружаются модули
Решение нашел. В проекте который загружается динамически есть ссылки на сборки prism-ы. Выставил для них CopyLocal=False и всё заработало.
Тема закрыта.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / prism 4.1+ mef не загружаются модули / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]