![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
mlitkin |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 10.7.2007 Репутация: нет Всего: нет |
Возникла проблема при разработке приложения по архитектуре плагинов. Т.е. есть основной exe, к которому в момент запуска динамически из подкаталога (Plugins) подцепляются dll-ки плагинов. И все работает на ура до тех пор, пока плагин состоит только из одной dll. Если же в референсах плагина указать еще какую-либо dll, не указанную в референсах основного приложения, то в момент обращения к классу, объявленному в плагине, возникает ошибка:
"Could not load file or assembly 'EquipmentsDomain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Не удается найти указанный файл." Сборка EquipmentsDomain - это как раз та dll-ка, которая есть в плагине (в референсах), но ее нет в основном приложении. Лежит она в той же папке, где и плагин (Plugins\Имя плагина). Проблема "решается", если поместить эту dll в каталог вместе с exe. Но это же неправильно - весь плагин должен лежать в своем подкаталоге. Указание подкаталога плагинов на закладке Reference paths в настройках основного приложения также ничего не дает. При этом если поставить точку останова в dll-ке плагина и проверить список загруженных в домен сборок (AppDomain.CurrentDomain.GetAssemblies()), то там EquipmentsDomain присутствует и именно по нужному пути (подкаталог плагина). Может кто-то подскажет в чем тут проблема? |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: нет Всего: 49 |
mlitkin, как именно загружаешь dll плагина? Assembly.LoadFrom? в тот же домен, или в отдельный? Если в отдельный, попробуй указать PrivateBinPath при создании домена. Если в тот же, прицепись к AppDomain.AssemblyResolve и помогай приложению резолвить сборки, или проверь чтобы все сборки загружались в один контекст.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |