Как вы ссылались на эти проекты? Указаны ли они как файлы проекта или их скомпилированная форма .dll / .exe?
Похоже, они были добавлены в виде необработанных проектов / исходного кода. И в этом случае конечно они должны быть скомпилированы. В противном случае это все равно, что пытаться скомпилировать только половину исходного кода.
В .NET вы можете использовать любой .NET .dll или .NET .exe в качестве ссылки на сборку. С внутренним содержимым .NET вы всегда используете .dll. Но .exe тоже работает. Вам придется развернуть эти .dll / .exe вместе с кодом, но что-то вроде копирования его в выходной каталог, так как действие сборки должно работать. На самом деле, я даже не слышал о ссылках на необработанный проект, но он может быть где-то там.
Внутренне .NET .exe почти идентичен .NET .dll. Некоторый загрузочный код и более точная точка входа, может быть, некоторые мелочи вроде COM-взаимодействия меньше. Это одна из тех частей, где они черпали вдохновение из байт-кода Java, а затем сделали его лучше. Таким образом, вы можете просто добавить их в качестве ссылки.