В последних версиях .net что-то изменили в зависимостях сборок?
Есть такая структура солюшена в Visual Studio:
Project1 (main project)
Project2
Project3
Project1 использует классы из Project2 , Project2 использует классы из Project3. Соотвественно, Project1 должна ссылаться на Project2 , Project2 должна ссылаться на Project3.
Несколько лет назад на подобной структуре я замечал, что солюшен не компилируется, если не добавить ссылку на Project3 в Project1 (хотя классы из Project3 непосредственно не юзаются внутри кода классов из Project1).
Сейчас я создал аналогичную структуру в Visual Studio 2017, НЕ добавляя ссылку на Project3 в Project1, сбилдил - и оно сбилдилось.
Кто-нибудь может объяснить: то ли я что-то путаю, то ли что-то забыл, то ли они реально это изменили?
Всегда так работало. Т.е. ссылка на Project3 не обязана быть в Project1.
Скорее всего ваша проблема имела другую причину. Но лечилась добавлением ссылки на Project3. Возможно поэтому вы так подумали.