2008-11-23 6 views
3

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

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

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

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

+1

Просьба указать конкретный текст вашей ошибки компилятора. – 2008-11-23 13:39:22

ответ

1

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

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

4

Ссылки на сборку не являются транзитивными.

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