У меня возникла та же проблема, хотя я правильно ссылался на .NET 3.5 во всех проектах, перенесенных с VS 2008 на VS 2010 (все ссылки на системные сборки использовались во время выполнения версии 2.0).
Странно, однако, ошибка возникала только в том случае, если мое решение (и проекты в подпапках этого решения) были расположены по определенному пути ... Я мог бы "решить" проблему, переместив проекты или переименовав проекты (только файл проекта) , а не выходные двоичные файлы)?!
Двойной щелчок по ссылке в проекте правильно открыл Обозреватель объектов, где я мог найти все артефакты, определенные в ссылочном проекте!
Я начал удалять все из проекта (классы, ресурсы, ссылки и т. Д.). В конце у меня было только два проекта (A ссылаются на B) без каких-либо других ссылок и только с одним пустым классом в каждом. У меня все еще было сообщение "указанный проект '.. \ B \ B.csproj' не существует". Внезапно, пытаясь скопировать исходный код на другой компьютер и затем вернуться по первоначальному пути на моем компьютере (что-то вроде черной магии для решения проблемы), я получил сообщение «Невозможно скопировать. Полученное имя файла слишком длинное».
Wierd² !!! Я удалил все на своем компьютере и снова скопировал источники с другого компьютера. Это прошло успешно! Я сделал повторное копирование обратно с другого компьютера (теперь перезаписывая существующую локальную копию) и снова получил сообщение «Не удается скопировать. Полученное имя файла слишком длинное». Так что проблема возникла только при перезаписи существующих файлов.
Я обнаружил, что ошибка возникла только в том случае, если существующий файл был «только для чтения». Снятие флага только для чтения решило эту проблему. Тем не менее, эта ошибка была признаком чего-то, возможно, в коренной причине моей первоначальной проблемы: "ссылка на проект '.. \ B \ B.csproj' не существует".
Итак, я решил проверить, была ли проблема с длиной пути проекта, переименовав одну из папок, но не изменив общую длину! Ошибка все еще произошла (ссылка не найдена).
Затем (я знаю, вы уже думаете, что я сумасшедший или глупый. Но все эти шаги были проверены различными коллегами), я скопировал решение в новую папку (с более длинным путем). Сюрприз, ошибка больше не произошла !!!
Но перемещение решения обратно в папку с такой же длиной (возможно, с другим именем) вновь приводило к ошибке (после «Очистки» решения, в противном случае мета в obj помогла решить ссылку).
Мне также удалось воспроизвести это, переименовав файл проекта B вместо папки в пути. Более длинное или короткое имя файла проекта решало эту проблему.
Длина пути к файлу проекта равна "195":
D: \ TFS_Builds \ 5 \ XXXX 1.1 \ Release 1.11 \ Sources \ Release 1.11 \ Хранилище исключений \ XXXXXX.Framework.ExceptionHandling.Repository.ServiceHost \ XXXXXX.Framework.ExceptionHandling.Repository.ServiceHost
Кроме того, поскольку я могу быть очень изобретательным при попытке определить основную причину проблемы, я создал тот же путь на C: \ и поместил туда решение ... Произошла та же ошибка.
Я так и не нашел (до сих пор) причину этого и разместил вопрос на MSDN: http://social.msdn.microsoft.com/Forums/en/msbuild/thread/f0eb6aed-5854-4678-9546-09c1a7705e30