Можно ли загрузить dll silverlight (только отражение) в приложение .net? - PullRequest
3 голосов
/ 14 февраля 2011

Я осознаю разницу в SL и .net CLR и библиотеке классов и не хочу выполнять какой-либо код (просто запросите некоторые атрибуты и проверьте, реализуют ли некоторые типы интерфейс, объявленный в общей сборке).

Но я не могу загрузить dll SL с Assembly.LoadFrom, потому что он не находит зависимости (например, System.Windows.dll и тому подобное). Я попытался Assembly.ReflectionOnlyLoadFrom, но это дает мне почти ту же ошибку (не может загрузить зависимости) только с другой формулировкой ...

Есть ли ЛЮБОЙ способ отразить сборку SL снаружи SL?

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011

Попробуйте скопировать зависимости (System.Windows.dll и т. Д.) В тот же каталог, что и сборка Silverlight, которую вы пытаетесь загрузить.

Загрузчик / слияние должен иметь возможность находить и загружать правильные зависимые сборки (даже для «только отражения»), поскольку жизненно важные метаданные (такие как сигнатуры методов, унаследованные от базовых классов) могут находиться только в этих зависимостях.

1 голос
/ 14 февраля 2011

Я переключился обратно на LoadFrom вместо ReadOnlyLoadFrom. По крайней мере СЕЙЧАС он нашел мои собственные сборки, и ему не хватает только System.Windows и т. Д.
Поэтому я подписался на AppDomain.Current.AssemblyResolve и передал мою папку установки SL в качестве параметра моему приложению. Поэтому теперь для каждой неразрешенной сборки я ищу ее по имени в каталоге SL (c: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ Silverlight \ v4.0)

...