Как использовать SDK для .NET с поддержкой .NET 6.0?

Создал крослатформенное решение на Avalonia:

dotnet new -i avalonia.templates

При попытке запуска на каждом проекте выходит сообщение:

Microsoft.NET.TargetFrameworkInference.targets(141, 5): [NETSDK1045] текущий пакет SDK для .NET не поддерживает целевой объект .NET 6.0. Выберите .NET 5.0 или более раннюю версию либо используйте версию пакета SDK для .NET, которая поддерживает .NET 6.0.

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

Установлены следующие SDK Tools (правда, непонятно, что из этого нужно для поддержки .NET 6.0):

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

А правый клик на решении > Manage .NET SDK даёт следующее:

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

Что нужно доустановить из SDK-инструментов, и нужно ли их где-то отдельно прописывать в проекте или решении?


Ответы (1 шт):

Автор решения: Pavel Sumarokov

Вначале нужно понять, какие .NET SDK установлены в системе:

$ dotnet --list-sdks
5.0.202 [C:\Program Files\dotnet\sdk]
6.0.402 [C:\Program Files\dotnet\sdk]
7.0.100 [C:\Program Files\dotnet\sdk]

Если нет SDK минимально требуемой версии - доустановить.

Затем в корневом каталоге решения в файле global.json указать нужную версию SDK, причём точь в точь, как в полученном списке:

{
  "sdk": {
    "version": "6.0.402",
    "rollForward": "disable",
    "allowPrerelease": true
  },
  "msbuild-sdks": {
    "Microsoft.Build.Traversal": "1.0.43",
    "Xamarin.Legacy.Sdk": "0.1.2-alpha6",
    "MSBuild.Sdk.Extras": "3.0.22",
    "AggregatePackage.NuGet.Sdk": "0.1.12"
  }
}
→ Ссылка