Загрузка модулей в Prism из xap без ссылки - PullRequest
1 голос
/ 22 апреля 2011

Я использую Prism 4 с Unity.У меня есть основной проект и модуль.Модуль создается в виде приложений Silverlight, поэтому он создает отдельный файл xap.

Я загружаю модули в ConfigureModuleCatalog загрузчика, как указано в документации.

var moduleType = typeof (MyModule);
this.ModuleCatalog.AddModule(
    new ModuleInfo
    {
       ModuleName = moduleType.Name,
       ModuleType = moduleType.AssemblyQualifiedName,
       InitializationMode = InitializationMode.WhenAvailable,
    });

Все работает нормально,но я заметил, что мой основной xap-файл также содержит dll, связанные с моим модулем.Итак, я установил Copy Local = False в ссылке на модуль, и он правильно собирается с dll модуля только в своем собственном файле xap.

Но теперь мое приложение не запускается, потому что я не могу получить типинформация для MyModule.Я получаю FileNotFoundException.

Я обнаружил, что могу полностью удалить ссылку, если вручную введу ModuleName и ModuleType, а также установить Ref = "MyModule.xap" в ModuleInfo.Это прекрасно работает, но вот проблема: я часто строю и использую динамические номера версий.Таким образом, AssemblyQualifiedName изменяется слишком легко.Без ссылки невозможно получить ее динамически.Если я удаляю номер версии из AssemblyQualifiedName, он не работает.

Конечно, есть какой-то другой способ заставить модуль загружаться из своего собственного файла xap, не заканчивая также в основном xap?

1 Ответ

0 голосов
/ 22 апреля 2011

Nevermind ...

После дальнейших исследований, похоже, моя ошибка заключается в использовании подстановочного знака в сборочной версии.На многих сайтах рекомендуется использовать подстановочный знак только в версии FILE сборки и использовать фиксированные номера версий в версии сборки.Тогда я могу просто отбросить ссылку и обратиться к модулю по его строгому имени с фиксированным номером версии.

Я был настолько привязан к призме на этом.Я не понял этого, пока не подумал о месте сборки в целом.Сообщение, которое решило это для меня актуально, было о решении частей sharepoint.Просто идет, чтобы показать, что иногда вы должны думать нестандартно.

Обновление

Похоже, вы не можете использовать подстановочный знак в версии файла ... grr ... Я нашел надстройку, которая будет работать, хотя http://autobuildversion.codeplex.com/

Кто-нибудь получил идею получше?

...