Как создать библиотеку классов с TargetFramework = netstandard2.1?

Я установил dotnet-sdk-3.0.100-win-x64.exe в свою систему для нацеливания на приложение .NET Core 3.0. После установки я проверил установленную версию с помощью команды: dotnet --version, которая дает response = 3.0.100.

Теперь, используя dotnet cli, я попытался создать библиотеку классов (C #) с targetframework = netstandard2.1, а также создал решение и добавил к нему проект библиотеки классов.

При построении решения я вижу следующую ошибку:

Ошибка NETSDK1045 Текущий пакет SDK для .NET не поддерживает таргетинг на .NET Standard 2.1. Либо целевой .NET Standard 2.0 или ниже, либо используйте версию .NET SDK, поддерживающую .NET Standard 2.1. SampleApp C: \ ProgramFiles \ dotnet \ sdk \ 2.2.300 \ Sdks \ Microsoft.NET.Sdk \ target \ Microsoft.NET.TargetFrameworkInference.targets

Может ли кто-нибудь помочь мне решить эту проблему?


person santosh kumar patro    schedule 25.10.2019    source источник
comment
Вы установили 2.1 SDK? dotnet.microsoft.com/download/dotnet-core/2.1   -  person Neil    schedule 25.10.2019
comment
Да, в моей системе установлены следующие версии .NET SDK: 2.1.700, 2.2.300, 3.0.100   -  person santosh kumar patro    schedule 25.10.2019
comment
Убедитесь, что у вас нет файла global.json в текущем рабочем каталоге или в одном из его родительских каталогов. Он может указывать более старую версию SDK, чем последняя, ​​установленная на вашем компьютере. Видимо используется 2.2.300.   -  person mm8    schedule 25.10.2019
comment
Это проект библиотеки классов, в котором вообще нет файла global.json.   -  person santosh kumar patro    schedule 25.10.2019
comment
Что, если вы сделаете dotnet new globaljson --sdk-version 3.0.100 перед сборкой?   -  person mm8    schedule 25.10.2019
comment
Теперь я получаю следующую ошибку: Подробная информация: для версии 3.0.100 .NET Core SDK требуется как минимум версия 16.3.0 MSBuild. Текущая доступная версия MSBuild - 16.1.76.45076. Измените пакет SDK .NET Core, указанный в global.json, на более старую версию, для которой требуется доступная в настоящее время версия MSBuild.   -  person santosh kumar patro    schedule 25.10.2019
comment
@santoshkumarpatro: см. эту проблему на GitHub.   -  person mm8    schedule 25.10.2019


Ответы (1)


Убедитесь, что у вас нет global.json файл в текущем рабочем каталоге или в одном из его родительских каталогов.

Он используется для определения того, какая версия пакета SDK для .NET Core используется при выполнении команд интерфейса командной строки .NET Core. В вашем случае явно используется 2.2.300. Если global.json отсутствует, следует использовать последнюю версию SDK, установленную на машине.

Вы можете попробовать запустить эту команду непосредственно перед сборкой, чтобы создать новый файл global.json в текущем каталоге.

dotnet new globaljson --sdk-version 3.0.100

Обратите внимание, что для работы с .NET Core 3 вам потребуется Visual Studio версии 16.3 или выше. Если он жалуется на MSBuild, попробуйте обновить Visual Studio или / и см. эта проблема на GitHub.

person mm8    schedule 25.10.2019
comment
@santoshkumarpatro: Вы решили это или что случилось? - person mm8; 28.10.2019