Одна из вещей, которые мы обнаружили при переходе на TFS (который использует msbuild, по крайней мере, так, как мы его настроили) из VSS / CruiseControl.NET (который, я предполагаю, использовал devenv в нашей конфигурации), заключается в том, что иногда ProjectGuids выйти из синхронизации.
Итак, проект A ссылается на проект B, а файл проекта или решения для проекта A имеет ProjectGuid и путь к файлу проекта Project B. Однако по какой-либо причине ProjectGuid в Project B изменился, и проект или файл Project Project не были обновлены, чтобы отразить это.
Devenv хорош, потому что он либо просто использует путь к файлу проекта Project B, либо возвращается к нему. Msbuild, однако, останавливается на этом этапе, потому что если ProjectGuids не совпадает, это не нужно. На данный момент вы можете исправить это в Visual Studio (я думаю удаление и повторное добавление проекта работает) или вручную через Блокнот или что-то еще.
Я оставлю на ваше усмотрение решать, что лучше (строгое соблюдение ProjectGuid или снисходительность, когда известен путь к проекту)