Ошибка 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, чувствителен к регистру! Итак, имейте в виду, и проверьте правильность пути в правильном случае! Сделать это:
- Щелкните правой кнопкой мыши по проекту
- выберите Изменить
- Проверьте
<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. Я понятия не имею, почему, но это исправило это для меня.