Не удалось найти систему Visual Studio 2017. Проект ASP.NET Core
Я установил недавно выпущенную версию Visual Studio 2017 и запустил новый проект ASP.NET Core, ориентированный на .NET Core.
Из коробки я получаю
Тип или имя пространства имен 'System' не удалось найти (вы отсутствует директива using или ссылка на сборку?)
ошибка. Любая идея, что вызывает это и как его исправить?
![введите описание изображения здесь]()
Кроме того, похоже, что есть проблемы с пакетами NuGet:
![введите описание изображения здесь]()
Я также попробовал восстановление dotnet в проекте через командную строку и получил следующую ошибку:
![введите описание изображения здесь]()
P.S. Вид уныния, что вы получаете ошибку в новом новом проекте в последней версии Visual Studio 2017!
UPDATE:
Версия SDK v 1.0.1 - см. Ниже:
![введите описание изображения здесь]()
ОБНОВЛЕНИЕ 2:
Это очень странно. Похоже, исходная проблема возникла из-за источника пакета NuGet, указывающего на папку в папке Visual Studio 2015. Я отключил его и оставил только nuget.org. При этом мой проект, похоже, восстановил все пакеты, и когда я начал проект, он загрузил стандартную страницу ASP.NET. Но если я открою файл startup.cs, я получаю красные squigglies повсюду, но если я запустил проект, он отлично работает. Что здесь происходит?
![введите описание изображения здесь]()
ОБНОВЛЕНИЕ 3:
Я закрыл проект и VS 2017. Затем я перезапустил VS 2017 и открыл проект, и теперь, похоже, все в порядке. И я не ссылаюсь на библиотеку .NETStandard 1.6.1, и теперь все работает нормально.
Ответы
Ответ 1
Произошла одна и та же проблема. У меня был старый источник нуджетов, который больше не существовал. Поэтому я зашел в Tools > Nuget Packet Manager и не проверял неправильный. Хит "Хорошо", а затем перестроил проект, и теперь он отлично работает. Похоже, вы наткнулись на него, но также хотели проверить, что он исправил мою проблему, и это так.
![введите описание изображения здесь]()
Ответ 2
У меня была такая же проблема в приложении Visual Studio 2017..NET Core. Я закрыл Visual Studio и снова открыл исправленное.
Ответ 3
У меня была такая же проблема, сначала при преобразовании веб-проекта сетевого ядра VS2015 с ядром в 2017 году, а затем при попытке создания нового основного веб-приложения в 2017 году.
Пошел в Инструменты | Менеджер пакетов NuGet | Настройки диспетчера пакетов - отметьте "Разрешить NuGet загружать отсутствующие пакеты" и "Автоматически проверять отсутствующие пакеты во время сборки в VS", а затем щелкнуть "Очистить все кеши NuGet".
Затем переделано решение - оно обнаружило и загрузило все необходимые пакеты и запустило OK.
Может не работать для всех случаев, но просто и стоит попробовать.
Ответ 4
Несколько закрытия и повторного открытия VS2017 исправили его для меня.
Ответ 5
Проверьте версию .NET Command Line Tools в CMD, просто введите dotnet --info
. Если версия 1.0.0
, попробуйте установить последнюю версию .NET Core SDK из здесь.
![введите описание изображения здесь]()
Ответ 6
У меня была та же проблема, решение для меня состояло в очистке кеша NuGet. Инструменты > Диспетчер пакетов NuGet > Параметры диспетчера пакетов > Очистить все кеши NuGet
Ответ 7
Эта проблема, кажется, вызвана несметным числом причин. Мой был вызван клонированием непосредственно из VSTS с использованием Git Bash, в моем каталоге проекта были пробелы. Git Bash изменил эти пробелы на пути к %20. Это скинуло все ссылки в моем проекте. Так что для любого, кто попробовал все остальное и в конце концов, убедитесь, что %20 не на пути.
Ответ 8
Была та же проблема. Удаленные данные приложений из моих проектов с помощью диспетчера пакетов nuget. Я еще не смотрю на это, мне просто нужны тесты ядра и единицы. Проблема решена.
Ответ 9
У меня также была та же проблема.
В папке "Зависимости" нет папки SDK. Поэтому нет библиотек Microsoft.NetCore.App!
Чтобы решить эту проблему, в окне менеджера Nuget установите любой nuget, который зависит от .NetCoreApp(вы можете установить, например, Microsoft.AspNetCore или BundlerMinifier.Core из источника автономных пакетов Microsoft Visual Studio).
SDK будет восстановлен в одно и то же время.
Как только он вернется, вы можете удалить ранее добавленный nuget. SDK останется на месте.
Ответ 10
Не совсем уверен, в каком порядке против 2017 пытается решить пакеты.
Но моя ситуация была следующей. В моем VS2015 я настроил локальный и сторонний источник для пакетов nuget, и их новая загруженная версия 2017 также загрузила их.
https://api.nuget.org/v3/index.json был первым в списке.
Но vs2017 выбрал ошибку, из-за которой он не может восстановить .net-библиотеки ядра из моего другого локального репо.
После того, как я отключил все из них, кроме https://api.nuget.org/v3/index.json, он начал нормально работать.
Ответ 11
Найдите сломанный проект и щелкните правой кнопкой мыши, выгрузите, щелкните правой кнопкой мыши, перезагрузите. Самое быстрое решение для меня.
Если вы dotnet restore
с проблемой при использовании интерфейса командной строки, попробуйте выполнить nuget restore
dotnet restore
вместо dotnet restore
поскольку это иногда приводит к удалению пакетов, которые, по-видимому, пропускает CLI dotnet.
Ответ 12
У меня тоже была эта проблема, но не сейчас, эти шаги решили мою проблему: выберите "Проект" → "Свойства" в строке меню. В окне свойств проекта в разделе "Свойства конфигурации" → "Общие" убедитесь, что для поддержки Common Language Runtime Support установлено значение Common Language Runtime Support (/clr)
Ответ 13
Просто открыв диспетчер пакетов NuGet, а затем связанные с ним настройки Visual Studio - , не меняя ничего - просто оглядываясь, и когда я закрыл проблему, проблема исчезла.
Кажется, что это периодическая проблема, которая может возникать и идти без видимой причины.
Ответ 14
Попробуйте добавить следующую строку над другими ссылками в файле csproj
<Reference Include="netstandard"/>
![Reference screenshot]()
Ответ 15
Для меня проблема была вызвана тем, что мой проект имел собственный IntermediateOutputPath
. По какой-то причине, если project_name.csproj.nuget.g.targets
отсутствует в obj
папки проекта, возникает ошибка.
Использование по умолчанию IntermediateOutputPath
или хранение теневой копии project_name.csproj.nuget.g.targets
в папке fake obj
решает проблему для меня.
Ответ 16
Ни один из ответов здесь не сработал для меня, поэтому я публикую то, что сработало. Мои ошибки были в основном такими же, как у оригинального постера, но у меня также было:
Ошибка загрузки метаданных для шестнадцатеричного значения 0x1C недопустимого символа Microsoft.Extensions.FileProviders.Embedded.2.0.1.
Каждый раз, когда я пытался загрузить другой пакет nuget или восстановить старые пакеты, я видел эту ошибку. Я также видел другие ошибки, такие как:
система типа или пространства имен не найдена
Что сработало для меня:
- открыл путь к файлу, в котором указана ошибка, указавшая на неверные метаданные, для меня это был C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.fileproviders.embedded\2.0.1
- Затем я помещаю содержимое этой папки в другую папку, которую я назвал "скрытой".
- Затем я вернулся к диспетчеру пакетов nuget и попытался установить пакет, надеясь восстановить SDK. Я успешно работал, все мои другие ошибки также исчезли, и новый новый проект работает как надо!
Ответ 17
Проблема для меня возникла при запуске Visual Studio в качестве администратора с отдельным user--, где я создал Git Repo с исходными файлами в пользовательских документах моей обычной учетной записи. Когда я создал новое решение в этой папке, произошли вышеуказанные ошибки. Попробуйте создать свой проект в другом месте и посмотреть, если ошибка все еще происходит.
Ответ 18
Я столкнулся с той же проблемой, когда создавал новый проект (.net Core 2.2) в VS2019. В моем случае был пакет Azure, который создавал проблему. Я удалил его, и проект начал работать нормально. Запустите указанную ниже команду для удаления пакета.
Пакет удаления Microsoft.VisualStudio.Azure.Containers.Tools.Targets -Version 1.7.10
Ответ 19
У меня была такая же проблема с Visual Studio 2019 и .NET Core SDK 2.2.
Эти шаги решили проблему:
- Закройте Visual Studio
- Откройте Visual Studio от имени администратора
- Откройте решение
- Щелкните правой кнопкой мыши Решение → Восстановить пакеты NuGet.