Visual Studio 2017 Update 3 - Не удалось найти SDK "Microsoft.NET.Sdk.Web"

Ошибка:

C:\WebApp\WebApp.csproj: ошибка: указанный SDK "Microsoft.NET.Sdk.Web" не найден. C:\WebApp\WebApp.csproj

Я пытаюсь открыть основной проект Dotnet, и я получаю вышеуказанную ошибку.

Я установил последний SDK с https://www.microsoft.com/net/core#windowscmd

Я проверил путь для Dotnet CMD, и он работает нормально.

Я что-то пропустил? Дайте мне знать, если вам нужна дополнительная информация.

Целевая платформа установлена на .NET 4.5.2

Ответ 1

Как указано в комментарии, я обновил файл global.json, как показано ниже

{
  "sdk": {
  "version": "1.0.0"
 } 
}

Кроме того, мне пришлось удалить <ItemGroup>, который содержит путь к файлам wwwroot в файле .csproj.

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

Перезагрузите проект, и он работает как шарм!

Ответ 2

Я сталкивался с этой проблемой несколько раз в последнее время. Вот краткий список обходных путей, которые я нашел (один из них всегда работал до сих пор):

  1. Установите нужный .NET Core SDK: либо последняя версия, либо версия, необходимая для вашего проекта.
  2. Очистка устаревших версий .NET Core. Перейдите в Панель управления и удалите предыдущие версии .NET Core SDK/Runtime (если вы их больше не используете).
  3. Создайте файл Global.json: добавьте новый файл global.json в корень проекта со следующим содержимым (замените сборку версии .NET Core на ту, с которой вы хотите запустить проект):

    {"sdk": {"version": "2.0.5"}}

  4. Переименуйте ссылку на SDK: откройте файл .proj и замените <project sdk="Microsoft.NET.Sdk.web"> на <project sdk="Microsoft.NET.Sdk">.

  5. Добавьте переменную среды MSBuildSDKsPath: CLI dotnet устанавливает переменную среды MSBuildSDKsPath при вызове MSBuild: однако исправление в декабре 2016 года изменило поведение CLI, чтобы оно учитывало существующую переменную среды, если она уже была установлена: это позволит разработчику "заставить" CLI использовать определенный SDK.

  6. Проверьте свой PATH: убедитесь, что и C:\Program Files\dotnet и C:\Program Files (x86)\dotnet находятся в переменной среды PATH.

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

Ответ 3

Я согласен с комментарием в ответе Sundeep, у вас больше не должно быть файла global.json в вашем проекте.

Кажется, что установка .NET Core 2.0 SDK вызывает проблемы с PATH. Убедитесь, что C:\Program Files\dotnet и C:\Program Files (x86)\dotnet находятся в переменной среды PATH. В моем случае эти значения уже присутствовали в System Variables, поэтому я добавил их в User Variables и перезагрузил мою машину. Это разрешило мою проблему.

Ответ 4

Я столкнулся с той же проблемой, я просто переименовать <project sdk="Microsoft.NET.Sdk.web"> в <project sdk="Microsoft.NET.Sdk"> на csproj.


другая ситуация: fooobar.com/questions/16864505/...

подробности выпуска: версии SDK 2.1.6xx и 2.2.2xx поддерживаются только в Visual Studio 2019. VS 2017 требует версии SDK 2.1.5xx и 2.2.1xx.

Как решить проблему? Установите версию SDK 2.1.5xx, если вы нацеливаетесь на приложение 2.1 Установите версию SDK 2.2.1xx, если вы нацеливаетесь на приложение 2.2.

и согласно официальному документу:

Примечание. Если вы являетесь пользователем Visual Studio, существуют требования к версии MSBuild, поэтому используйте только .NET Core SDK, поддерживаемый для каждой версии Visual Studio. Если вы используете другие среды разработки, мы рекомендуем использовать последнюю версию SDK.

Ответ 5

Не удаляйте предыдущие версии SDK!

Когда я выполнил 2-й шаг, предложенный в ответе Darkseal, при удалении предыдущих версий SDK он вызывал фатальную ошибку "ожидаемый импорт отсутствует" каждый раз, когда я открывал свой проект, поэтому мне пришлось восстанавливать Visual Studio, так как после установки старого SDK версии снова выскакивали эта ошибка...

Также другие шаги, упомянутые в этом ответе, не имели никакого значения (обе ссылки на dotnet присутствовали в переменных окружения, и MSBuildSDKsPath мне не понадобился).

Установите правильную версию SDK и выберите ее в Свойствах решения

Как упоминал Jyoten, я использовал версию VS2017 x86, а мои SDK были x64.

Тем не менее, это была не единственная проблема, похоже, существует некоторая несовместимость с некоторыми версиями SDK и VS2017. Установив SDK v2.2.203 и v2.2.202, они никогда не будут отображаться в раскрывающемся списке Target Framework, когда я дважды щелкну Свойства в своем решении проекта (в обозревателе решений (Ctrl + Alt + L)).

Поэтому мне нужно было установить v2.2.105 x86, как упоминалось в этом ответе, чтобы он отображался в этом раскрывающемся списке.

Как только это произошло, решение, которое требовало .NET Core v2.2, работало правильно (делал Build нормально).

Ответ 6

У меня была эта проблема, когда мне пришлось открыть проект .Net Core 1.0.4 в VS2017.

Когда я установил 1.0.4 SDK, я выбрал версию x64, которая поместила файлы sdk в папку "c:\Program Files\dotnet"...

но мой VS2017 был 32 бит и поэтому искал sdk в 'c:\Program Files (x86)\dotnet'.

Как только я установил 32-разрядную версию SDK, он работал нормально.

Ответ 7

У меня возникла проблема, когда создание нового проекта ASP.NET Core 2.0 давало мне ошибку. Не удалось найти SDK "Microsoft.Net.Sdk.Web" и оставить меня неспособным открыть проект в Visual Studio. Проблема заключалась в том, что проект был создан в папке с файлом global.json, привязывая версию SDK к 1.0.0.

Удаление global.json или обновление его до 2.0.0 устраняет проблему. Не забудьте также проверить родительские папки - если какая-либо родительская папка содержит файл global.json, будет использоваться версия SDK, указанная в "ближайшей" папке.

Ответ 8

Я получал эту ошибку в коде Visual Studio.

Я смог найти проблему, установив параметры журнала OmniSharp в VS Code для отладки. Как только я это сделал, я увидел, что он не находит Microsoft.Build.Resources.dll.

Я установил MS Build, восстановив установку VS 2017 Community. Это исправило это.

Ответ 9

удалите и переустановите Microsoft.NET core SDK. затем перезапустите Visual Studio. это работает для меня.

Ответ 10

Выберите подходящий SDK в соответствии с вашей Visual Studio и операционной системой. Я скачал правильную версию отсюда https://dotnet.microsoft.com/download/visual-studio-sdks и после этого .Net Core появился в списке целевых фреймворков (существует строгая зависимость между версией sdk и версией VS, поэтому осторожный).

Ответ 11

Я решил эту проблему, перейдя на этот сайт https://dotnet.microsoft.com/download. В нем установите .NET Core Runtime и .NET Core SDK. После установки откройте Visual Studio 2017 с правами администратора. Теперь проблема устранена

Ответ 12

Я отредактировал файл .csproj и изменил netcoreapp2.2 на netcoreapp2.1 в этом разделе, и затем я смог заставить его работать.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>