Библиотеки VS2005 - PullRequest
       15

Библиотеки VS2005

2 голосов
/ 09 января 2012

Допустим, у вас есть 3 проекта:

ProjectA - Class Library
ProjectB - Class Library
ProjectC - Console Application

Теперь предположим, что ProjectB использует ProjectA DLL, а ProjectC использует ProjectB DLL.

В настоящее время я должен добавить ссылки как ProjectB, так и ProjectA для ProjectC.

Есть ли способ, которым я могу избежать этого?

Ответы [ 2 ]

0 голосов
/ 09 января 2012

Другого пути нет. Вы должны добавить ссылку A в ссылку B и ссылку B в C, иначе как VS.NET узнает, какую библиотеку классов использовать? Тем не менее, я не думаю, что вам нужны ссылки A и B в C. Если сборка не удалась, проверьте код - возможно, вы используете классы A где-то в C.

0 голосов
/ 09 января 2012

Если Project C напрямую не использует какие-либо классы из Project A, нет необходимости ссылаться на Project C на Project A.

Вам все еще понадобится dll Project A, доступная во время выполнения.

Чтобы уточнить «непосредственное использование» - любая ссылка в коде Project C на класс, интерфейс, структуру - что-либо определенное в Project A, а также ссылка на класс или интерфейс, определенный в Project B, но унаследованныйиз базового класса / интерфейса, определенного в Project A.

Вот как это делается при использовании DI (Dependency Injection) - ваш проект B является контрактом между приложением (C) и реализацией сервиса (A),Он содержит интерфейсы и POCO.

Время компиляции, приложение знает только о контракте, контейнер DI времени выполнения загружает реализацию.Изменение реализации не требует перекомпиляции и может быть сделано путем замены dll.

...