Хорошо, я нашел, по крайней мере, причину проблемы и несколько неудовлетворительное решение этой проблемы !!
Я начал с добавления нового проекта модульного тестирования и добавления к нему отдельных ссылок на проекты из моего основного решения. Я обнаружил, что мой проект данных (бизнес-сущностей) страдает от проблемы, которую я описываю, и потому что все мои другие сборки каким-то образом зависят от моего проекта данных, тот факт, что одна перекомпилируется, приводит ко всем другим.
Почему этот ВСЕГДА перекомпилируется? Это как-то связано с Entity Framework. Создайте пустой проект и добавьте к нему пустую модель EF - он ВСЕГДА перекомпилируется, даже если вы его не меняли. Это приводит к тому, что любые зависимости перекомпилируются, предположительно из-за изменения метаданных сборки данных.
Обходной путь, который я нашел, состоит не в добавлении ссылки на проект, а в добавление прямой ссылки на сборку в сборку данных. Недостатком является то, что вы не можете сделать, например, Перейдите к определению в VS2008, чтобы перейти непосредственно к типу, но, учитывая, что мы редко делаем это с этой конкретной сборкой, это не большая проблема.
Делая это, я сократил время сборки только для запуска одиночного модульного теста с ~ 20 секунд до ~ 7 секунд - что имеет огромное значение, когда ты пишешь десятки модульных тестов каждый день!
Если у кого-то есть идеи относительно того, почему модели EF делают это, мне было бы очень интересно услышать ...