Текущий .NET SDK не поддерживает таргетинг на .NET Core 2.2. (SDK 2.2.202) - PullRequest
1 голос
/ 04 апреля 2019

Еще одна из многих подобных проблем, но ни одно из найденных решений не помогло (см. Ниже, какой из них рассматривается).

На момент написания этой статьи .NET Core v2.2 вышел из предварительного просмотра, последняя версия v2.2.202 (дата выпуска, 02-04-2019).

Я установил один с помощью «Установить другие фреймворки», я установил x64, все другие версии, которые я установил ранее, также являются этой версией.

После установки, когда я создаю новый проект, он показывает:

enter image description here

Но когда я открываю свойства, это не так:

enter image description here

enter image description here

dotnet --info в каталоге проекта, дает следующий результат:

.NET Core SDK (reflecting any global.json):
 Version:   2.2.202
 Commit:    8a7ff6789d

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17134
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.2.202\

Host (useful for support):
  Version: 2.2.3
  Commit:  6b8ad509b6

.NET Core SDKs installed:
  2.1.2 [C:\Program Files\dotnet\sdk]
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.201 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.401 [C:\Program Files\dotnet\sdk]
  2.1.505 [C:\Program Files\dotnet\sdk]
  2.2.202 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.3-servicing-26724-03 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

Я пробовал:

  • Создайте global.json ( SO answer ), это только вызвало больше ошибок, поскольку не удалось загрузить проект, нацеленный на v2.2
  • Включить предварительный просмотр SDK в настройках ( SO ответ )
  • Я попытался установить версию x86, но это также дало больше ошибок, так как было непонятно, какую из них использовать сейчас. Так что начал жаловаться на то, что .NET Standard не устанавливается.
  • Я обновил инструменты сборки Visual Studio и Visual Studio до последних версий, то есть 15.9.11 (дата выпуска, 02-04-2019)
  • Когда я собираю с помощью командной строки dotnet build в каталоге решений, он собирается успешно, поэтому это должна быть визуальная студия.
  • проверил, что только C:\Program Files\dotnet\ находится в переменных среды, поэтому C:\Program Files (x86)\dotnet\ является , а не присутствует.
  • Посмотрел эти опции , сделал все из них, но я не установил переменную окружения MSBuildSDKsPath, так как у меня есть другие проекты, также нуждающиеся в 2.1. Я проверил, что на данный момент нет установленного MSBuildSDKsPath, поэтому его нельзя принудительно устанавливать на эту версию.

enter image description here

Все вышеперечисленные попытки, конечно, включают перезагрузку компьютера или перезагрузку VS.

Ответы [ 5 ]

6 голосов
/ 04 апреля 2019

Скорее всего, это похоже на оптимизацию установщика для VS, которая устраняет слишком жадные старые SDK и удаляет версии, на которые опираются более старые версии VS, но в данный момент это скорее гипотеза, пока команды MS изучают.См. этот выпуск GitHub для получения более похожих отчетов.

Версии 2.2.1xx SDK (!) Используют MSBuild 15, а версии 2.2.2xx используют MSBuild 16.

VS 2017необходимо разрешить локальную версию, совместимую с MSBuild 15, поэтому, если 2.2.1xx был удален во время обновления, это может привести к ошибке.

Это можно исправить, переустановив совместимую версию - например, 2.2.105 -от https://dotnet.microsoft.com/download/dotnet-core/2.2

Чтобы узнать, какой SDK использует какие компоненты, вы можете проверить файл DependencyVersions.props в источниках <3.0 и <a href="https://github.com/dotnet/cli/blob/master/eng/Versions.props" rel="noreferrer">Versions.props файл для> = 3.0 (предварительный просмотр) источников - версия MSBuild устанавливается с помощью свойства MicrosoftBuildPackageVersion.

0 голосов
/ 15 мая 2019

Используйте Visual Studio 2019 вместо 2017, если вы хотите работать с версией ядра asp.net более v2.2.100 https://github.com/aspnet/AspNetCore.Docs/issues/11844

0 голосов
/ 01 мая 2019

Установка dotnet-sdk-2.2.103-win-x64 исправила проблему

0 голосов
/ 05 апреля 2019

Добавление ответа @ martin-ullrich от https://github.com/aspnet/AspNetCore.Docs/issues/11844,, потому что оно стало более понятным для меня. (Может быть, потому что это пятница, и мне просто нужно: «Иди сюда и сделай это.»)

Перейти к https://dotnet.microsoft.com/download/dotnet-core/2.2 и Загрузите установщик для версии 2.2.105. Что-нибудь> = 2.2.200 не будет работать в VS 2017. Оба 2.2.105 и 2.2.202 содержат последние и лучшая версия .NET Core 2.2, но они отличаются по версии инструменты, которые они включают и на которых они основаны - поездом 1xx является MSBuild 15., NuGet 4. и т. Д., А поезд 2xx - это MSBuild 16., NuGet 5. и т. Д., И Visual Studio ищет только последнюю версию, совместимую с его версия MSBuild - для VS 2017 это версия 2.1.502, которая не может быть целью .NET Core 2.2. (И, чтобы добавить больше путаницы, есть сейчас Версии 2.1.6xx с версиями инструмента VS 2019 вместе со средой исполнения .NET Core 2.1)

[@] leecow и [@] rowanmiller работают над обновлением этой страницы относительно VS, также смотрите dotnet / core # 2542 и dotnet / sdk # 3076, которые о той же проблеме.


Мой вклад: После установки 2.2.105 я удалил папку (и) с названием «2.2.202» в каталоге C:\Program Files (x86)\dotnet\sdk и / или C:\Program Files\dotnet\sdk, так что dotnet --info теперь читает следующее:

enter image description here

0 голосов
/ 04 апреля 2019

Пфф, после все новых копаний я пытался установить более старую версию .NET Core 2.2. Я установил SDK v2.2.100 (первый стабильный выпуск). Казалось, это работает для visual studio, чтобы больше не показывать ошибку. Таким образом, даже несмотря на то, что Visaul Studio V15.9.11 и .NET Core SDK v2.2.202 были выпущены в одну и ту же дату (и, следовательно, при условии, что они выпущены вместе), они по-прежнему выдают ошибки, если не были установлены предыдущие версии SDK v2.2.x

...