Упомянутый проект x не существует - PullRequest
0 голосов
/ 26 апреля 2011

Hej All, Я обновил свои решения проекта с vs2008 до vs2010.

Но сейчас у меня странная проблема. Я ссылаюсь на проект в нескольких решениях (3 решения) В 2 из этих решений ссылка идет не так.

Я могу добавить ссылку (ссылку на проект), но при сборке я получил предупреждение, что указанный проект x не существует. И ошибки, которые я должен добавить ссылку.

Я уже удалил и добавил проект снова, тоже самое со ссылками, но без результата.

enter image description here

enter image description here

У кого-нибудь есть идеи?

Greetz

Jonathan

Ответы [ 6 ]

3 голосов
/ 15 июля 2011

У меня возникла та же проблема, хотя я правильно ссылался на .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

3 голосов
/ 26 апреля 2011

Убедитесь, что ваш проект не использует «Профиль клиента .NET Framework 4» в качестве целевой платформы, это наиболее распространенный источник этих проблем.

Вы можете проверить это в свойствах проекта в Target Framework .

От MSDN :

Если вы работаете с клиентским профилем .NET Framework 4, вы не можете ссылаться на сборку, которая являетсяотсутствует в клиентском профиле .NET Framework 4.Вместо этого вы должны ориентироваться на .NET Framework 4. Дополнительные сведения см. В разделе «Устранение ошибок при таргетинге .NET Framework».

2 голосов
/ 28 октября 2015

У меня была похожая проблема, и приведенные выше решения не помогли. Для меня работало открытие файла проекта в текстовом редакторе. Были двойные ссылки на библиотеку, одна как ссылка на проект, а другая как ссылка на dll. Я удалил оба. Затем я открыл решение в Visual Studio и повторно добавил ссылку в качестве ссылки на проект. Добавлена ​​только одна ссылка, и я перестал получать предупреждение.

0 голосов
/ 19 августа 2013

Проверьте длину следующего:

  1. Путь к справочному каталогу проекта
  2. Относительный путь к проекту, на который он ссылается

Если эти пути добавляют до точно 259 символов, в реализации .NET Path.GetFullPath вы увидите ошибку , из-за которой VisualStudio 2010 будет вести себя так, как если бы на него ссылались Проект не существует.

0 голосов
/ 12 января 2013

У меня была такая же проблема. Для меня это решило то, что я сначала открыл каждый из референсных проектов самостоятельно. VS просит разрешения исправить некоторые файлы. Разрешите это сделать.

Затем откройте верхний проект, и он будет работать.

По-видимому, это были проблемы с версией VS, которая создала исходный проект.

Удачи

0 голосов
/ 05 октября 2011

Вот что исправило мою проблему: У меня была ссылка на проект с именем " Utilities.Proxy3.5 ", который выдает мне следующее предупреждение:

"Ссылочный проект '.. \ .. \ Utilities.Proxy3.5 \ Utilities.Proxy3.5.csproj' не существует. "

Переименование папки проекта и файлов проекта в « Utilities.Proxy35 » и повторное добавление ссылки решило проблему. Примечание. Я удалил только точку между цифрами 3 и 5.

Надеюсь, это кому-нибудь поможет.

...