Является ли Visual Studio оптимизацией переходных ссылок?

Извините заранее за нечеткое название.

Я столкнулся с необычным поведением в Visual Studio (2010).

Предположим, что у меня есть три проекта в моем решении: A, B и C.

A has a reference on B

B has a reference on C

C has a reference on an assembly (log4net.dll)

Все из них настроены на Скопировать локальную правку.

Я отвечаю за проект A, а два других разработчика несут ответственность за проекты B и C.

Проект B использует несколько (статических) методов, которые находятся в проекте C в одном из его классов. Я использую другие классы из B, которые не используют ничего из C.

Когда я построил решение (проект A сконфигурирован как основной проект), я ожидал увидеть результаты C и его ссылочных сборок в выходной папке проекта A. Фактически произошло то, что результаты C были скопированы к выходной папке B, но отсутствовали в выходной папке A.

Мне потребовалось некоторое время, чтобы понять, что причина в том, что A не использует ничего из C (прямо или косвенно).

Итак, вопрос: это встроенная функция оптимизации Visual Studio или я что-то не так?

Ответ 1

Да, это особенность. Если вы не используете какие-либо типы из ссылочной сборки, он не копируется.