2012-01-04 2 views
0

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

ReflectionOnlyAssemblyResolve(object sender, ResolveEventArgs args) 

В одном из них мероприятие было поднято с помощью сборки, указанной ниже.

System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 

Так будет запрошена вся необходимая сборка.

На мой вопрос дается полное имя, как я могу получить местоположение фактической библиотеки для загрузки? Если это также не обязательно, и есть другой способ загрузить библиотеки, я тоже это оценю.

PS: Основное приложение - приложение .net 4.0.

ответ

1

Вы должны попробовать метод Assembly.Load(String). Он должен работать, в общих случаях.

+0

Он работает нормально. Я изменил строку следующим образом: 'var assm = Assembly.ReflectionOnlyLoad (args.Name); 'return assm; Проблема в том, что она бросает какое-то исключение для одной из библиотек. 'Правила безопасности наследования, нарушенные по типу: 'System.Web.Mvc.CompareAttribute'. Производные типы должны либо соответствовать безопасности доступности базового типа, либо быть менее доступными. ' – ritcoder

+0

Сборка может быть уже загружена в AppDomain с различными настройками безопасности. В этом случае вы можете попробовать проверить AppDomain.GetAssemblies() и сравнить полные имена. –

+0

Не работает. У меня такая же ошибка. Из точек останова, которые я установил, кажется, что событие не возникает, если сборка уже загружена. – ritcoder

Смежные вопросы