Ошибка Visual Studio 2017: не удается найти информацию о проекте для "" Это может указывать на отсутствие ссылки на проект

Только что установил Visual Studio 2017 (полная версия) с веб-сайта MSDN. Создал новый базовый веб-приложение Asp.Net(.Net Framework) с выбранным .NET Framework 4.6. Название проекта = "WebApplicationWithTemplate"

Добавлен еще один проект типа Библиотека классов (.Net Standard) с выбранным .NET Framework 4.6. Название проекта = "DataAccessRegular"

Затем попытался добавить ссылку проекта библиотеки классов в веб-приложение Asp.Net Core, и я получаю эту ошибку:

введите описание изображения здесь

Невозможно найти информацию о проекте для 'E:\Development\VS2017Solution\DataAccessRegular\DataAccessRegular.csproj'. Это может указывать на недостающую ссылку на проект. WebApplicationWithTemplate C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets 92

Также создан проект класса Library (.net core) [не показан на снимке экрана выше] и добавил ссылку на основной проект asp.net и по-прежнему получает ту же ошибку.

Также читайте Эта ссылка на github, но не нашла ее полезной, к сожалению.

Вопрос для этого заключается в том, что я хочу сохранить слои модели, сервиса и доступа к данным в отдельном проекте.

Ответ 1

Чтобы решить эту проблему, в вашем csproj для библиотеки классов либо измените <TargetFramework>netstandard1.4</TargetFramework> на <TargetFramework>net46</TargetFramework> или <TargetFrameworks>netstandard1.4;net46</TargetFrameworks>

Обратите внимание, что если вы укажете более одной цели, элемент должен быть изменен на множественные TargetFramework s, а не TargetFramework (создавать ошибки при мультитаргетинге в файле csproj)

То, что вы видите, исходит из шаблона Class Library (.NET Standard) самом деле нацеленного на.NET Standard (только для netstandard1.4), а не на выделение в раскрывающемся netstandard1.4 целевой структуры. Использование шаблона Class Library (.NET Framework) также будет работать.

Обновить:

Дополнительные опции:

  • Измените веб-приложение на целевую .NET Framework 4.6.1 (это позволит netstandard1.4 на netstandard1.4 на которые ссылается netstandard1.4
  • Измените библиотеку классов на целевой netstandard1.3 (это позволит ссылаться на проекты, ориентированные на .NET Framework 4.6)

Мы также отслеживаем улучшение способа получения этих проблем с помощью https://github.com/dotnet/sdk/issues/829 и https://github.com/dotnet/roslyn-project-system/issues/1470

Ответ 2

У меня возникла эта проблема после удаления пакета nuget (который я построил сам) из решения, а затем заменил его ссылкой на проект на проект, из которого был создан пакет. Решение проблемы...? Закройте VS и откройте его.

Ответ 3

Я решил это, исправив свою ошибку, что ссылка была добавлена ​​как ссылка на проект И как ссылка на просмотр.

Таким образом, сборка была упомянута дважды - непосредственно как сборка - и косвенно - как результат включения проекта.

Когда я удалил ссылку на просмотр и только сохранил ссылку на проект, она очистилась.

Ответ 4

Указанный путь проекта, хранящийся в.csproj, чувствителен к регистру! Итак, имейте в виду, и проверьте правильность пути в правильном случае! Сделать это:

  1. Щелкните правой кнопкой мыши по проекту
  2. выберите Изменить
  3. Проверьте <ProjectReference Include=<Path>

ПРИМЕЧАНИЕ (KDuenke): Это может быть проблемой и для Windows-машины, особенно если вы используете Docker для Windows.

Ответ 5

Если вы ошибочно ссылаетесь на DLL, а также ссылаетесь на проект, вы увидите, что узел References/Assemblies в проводнике решений содержит.dll, а также вы можете посмотреть ссылки на указанные проекты и увидеть один и тот же проект. Удалите из сборников файл.dll, если вам нужен проект, на который ссылается или удаляет проект, если вам нужна только ссылка на файл.dll.

В моем случае я просто удалил сборку из списка Reference/Assemblies.

Ответ 6

У меня есть эта же проблема и удалить ссылочный класс из сборок и решить эту проблему,

Ответ 7

Возникла проблема при переименовании проекта и папки (с файлом .csproj). Я dotnet restore в dotnet restore на двух проектах, которые дали мне эту ошибку (которая имела ссылку на проект перед переименованием и после добавления ссылки на "новый" переименованный проект), а затем решение успешно построено.

Ответ 8

Если вы добавили ссылку на dll в сборку и добавили в качестве ссылки на проект, а также в зависимости, то вы столкнетесь с этой проблемой (одна из многих возможных причин)

Вам просто нужно удалить ссылку из сборочного раздела зависимостей

Проверьте ниже: Пример

Ответ 9

В моем случае в проекте A была ссылка на проект B, которая включала пакет NuGet, который был построен из проекта C, который также был ссылкой на проект в проекте A. Решение состояло в том, чтобы изменить ссылку NuGet на ссылку на проект.

Ответ 10

Я просто потратил день на эту проблему после переименования проекта (файлы/папки/...)

Ни один из приведенных ответов не помог. VS перезагружается, полностью очищается/перестраивается,... Я даже искал упоминания об ошибочной ссылке в любом файле решения (как с использованием VS, так и Powershell), и ничего не появлялось, но ошибка сохранялась.

В конце концов, я решил это с помощью VPN-подключения к моему офису (я работал дома), где находится наш сервер Nuget. Как ни странно, ни один пакет не был загружен (поскольку все они уже были доступны в автономном режиме), но проблема была решена.

Проверьте, есть ли проблема с подключением к вашему серверу Nuget. Я понятия не имею, почему, но это исправило это для меня.