chris_brabant Ответов: 2

Исключение filenotfoundexception в visualstudio IDE при многоуровневой библиотеки DLL, на которые ссылается


Привет,
мое окружение-это :
- Windows 7, VS 2010 SP1, FW .NET 4.0.

Вопрос :
- У меня есть DLL .NET (dll1.dll версия 1.0.0.0 без StrongName), который содержит простой класс, который делает anythis ;
- У меня есть вторая DLL .NET (dll2.dll версия 1.0.0.0 без StrongName), который содержит WinForms UserControl, с одним простым управлением кнопкой ; dll1 также ссылается, со свойством SpecificVersion, установленным в false ;
- У меня есть приложение WinForms, которое содержит только одну форму. dll1 и dll2 ссылаются на свойство SpecificVersion, установленное в false, и в VS IDE я добавляю UserControl в Панель инструментов, а затем перетаскиваю один экземпляр UserControl на форму ;

На данный момент компиляция приложений (x86) и среда выполнения в порядке.

Затем :
- Я изменить немного код в файл dll1, я изменить версию файл dll1 с версии 1.0.0.0 до 1.1.0.0, и я перекомпилировать файл dll1 ;
- НО Я НЕ ХОЧУ ... перекомпилировать dll2, потому что его код не имеет никаких изменений ;
- В приложении WinForms ссылка на dll1 обновлена до 1.1.0.0, а ссылка на dll2-до 1.0.0.0.

Результаты :
- компиляция все еще в порядке ;
- время выполнения все еще в порядке, потому что нет StrongName ;
- НО когда я пытаюсь отобразить форму в IDE, VS выдает исключение FileNotFoundException, потому что он не может найти "dll1 version 1.0.0.0".

Я не понимаю, почему во время разработки vs выбрасывает это исключение, которое не выбрасывается во время выполнения.

Я надеюсь, что мои объяснения достаточно ясны и подробны.

Спасибо Вам за вашу помощь
Крис

Что я уже пробовал:

С VisualStudio 2013 та же проблема.

2 Ответов

Рейтинг:
0

phil.o

Вполне вероятно, что редактор VS где - то встроил версию dll.
Попробуйте удалить элемент управления из формы и из панели инструментов и добавить его снова; это должно избавиться от ошибки.


Рейтинг:
0

chris_brabant

Привет,
У меня есть трезубец, но я получаю ту же ошибку.
Это связь между dll2 и dll1, которая вызывает исключение, а не связь между приложением и dll2.

Крис