Ссылка на файл DLL библиотеки Microsoft Enterprise в оболочке DLL - PullRequest
3 голосов
/ 23 ноября 2008

Я пишу приложение, используя Microsoft Enterprise Library . Я написал DLL-оболочку для этого DLL-файла Enterprise Library. Я хочу использовать свою оболочку в некоторых приложениях Windows Forms . Проблема заключается в том, что каждый раз, когда я хочу использовать свою оболочку, в процессе компиляции появляется сообщение об отсутствии ссылки на файл DLL библиотеки предприятия.

Я могу просто решить эту проблему, предоставив эту ссылку, но я думаю, что здесь чего-то не хватает, потому что я только что обернул этот DLL-файл Enterprise Library в свою DLL. Почему ссылка не унаследована от моего проекта оболочки на проект Windows Forms?

Как я понимаю, приложение Windows Forms ищет каталог bin, а затем GAC , и, если оно не находит нужный файл DLL, возникает ошибка.

Файл DLL библиотеки Microsoft Enterprise уже подписан и находится в GAC, так в чем здесь проблема? Как я уже сказал, я чувствую, что что-то упустил!

Ответы [ 2 ]

4 голосов
/ 23 ноября 2008

Ссылки на сборки не являются переходными.

Если вы ссылаетесь и вызываете сборку A, которая ссылается на сборку B, вы автоматически не получаете ссылку на сборку B. Если для взаимодействия с A требуются типы из B, вам также нужно сослаться на B. 1003 *

1 голос
/ 23 ноября 2008

Вы должны указать библиотеку, которую вы используете (и только тогда она ищет ее в локальной папке и GAC)

Ссылки не являются "унаследованными" и, поскольку они динамически связаны (и не входят в состав вашей dll), они будут открываться при необходимости.

...