Подтвердить что ты не робот

Visual Studio 2012: нельзя ссылаться на проект

Мы разработали большое решение, содержащее ~ 35 проектов с VS 2010, теперь мы думаем о переходе на VS 2012 Ultimate. Я преобразовал файл решения в VS 2012 и вообще, все работает нормально.

Но всякий раз, когда я открываю решение, я получаю некоторые предупреждения по определенному проекту A в решении: "В проект X нельзя ссылаться" "На проект Y нельзя ссылаться" ... где A имеет проектные ссылки на X и Y. Когда я создаю решение, я получаю ошибки, что метаданные каждой соответствующей DLL не могут быть найдены.

Когда я смотрю ссылки в проводнике решений, они помечены желтым предупреждающим символом. Как только я просто нажимаю на ссылку, предупреждение исчезает, и значок выглядит нормально. Тогда я могу построить без ошибок!

Проблема возникает каждый раз, когда я открываю решение, затронутые проекты всегда одинаковы.

Кто-нибудь еще испытывал это странное поведение? Удаление и добавление ссылок на проект снова не помогло...

Спасибо заранее.

EDIT: Я проверил файл csproj проекта ссылок, и мне интересно, что все идентификаторы GUID проекта, имеющие вышеуказанную проблему, записаны в нижнем регистре, другие проекты в верхнем регистре.

<ProjectReference Include="..\Presentation.Net\Presentation.Net.csproj">
  <Project>{04004c6b-76c8-4f2d-9fcf-5a866bb80fd4}</Project>
  <Name>CMS.Presentation.Net</Name>
</ProjectReference>

Внутри решения идентификаторы GUID находятся в верхнем регистре:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Presentation.Net", "Presentation.Net\Presentation.Net.csproj", "{04004C6B-76C8-4F2D-9FCF-5A866BB80FD4}"

Любые идеи?

4b9b3361

Ответ 2

VS 2012 отказался от поддержки некоторых старых типов проектов. Не все типы проектов VS 2010 поддерживаются в VS 2012. Например, типы проектов установки MSI были заменены типами проектов InstallShield LE. Проверьте список совместимости здесь и проверьте, не является ли какой-либо из ваших неудачных типов проектов.

Ответ 3

Попробуйте очистить проект/решение, а затем постройте его.

Ответ 4

Когда я столкнулся с этой проблемой, это было связано с различными версиями .NET между проектами. Вы должны убедиться, что проект, который вы пытаетесь использовать, имеет совместимую версию .NET с текущим проектом.

Например, если ваш целевой проект -.NET 4.5.2, а проект, на который вы ссылаетесь, находится на уровне 4.6, вы можете получить эту ошибку, поскольку проект, на который ссылается, использует компоненты, к которым ваш текущий проект не может получить доступ.

Чтобы решить эту проблему, просто перейдите в свойства целевого проекта и выберите правильную совместимую версию .NET. Для всех моих проектов в моем решении я поддерживаю одну и ту же версию .NET для каждого из них, особенно если они ссылаются друг на друга.