当前的.NET SDK不支持以.NET Core 2.1.3为目标

当前的.NET SDK不支持以.NET Core 2.1.3为目标,sdk,.net-core,.net-core-2.1,Sdk,.net Core,.net Core 2.1,我想确保我的应用程序是基于.NET Core 2.1.3构建的,因此我安装了SDK的2.1.401版,并将项目的TargetFrameworkVersion设置为2.1.3 这给了我以下错误消息(我的): C:\Program Files\dotnet\sdk\2.1.401\Sdks\Microsoft.NET.sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(137,5):错误NETSDK1045:当前.NET sdk不支持

我想确保我的应用程序是基于.NET Core 2.1.3构建的,因此我安装了SDK的2.1.401版,并将项目的
TargetFrameworkVersion
设置为
2.1.3

这给了我以下错误消息(我的):

C:\Program Files\dotnet\sdk\2.1.401\Sdks\Microsoft.NET.sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(137,5):错误NETSDK1045:当前.NET sdk不支持针对.NET Core 2.1.3。以.NET Core 2.1或更低版本为目标,或使用支持.NET Core 2.1.3的.NET SDK版本。

所以有趣的是,这个构建似乎使用了新安装的SDK(2.1.401)——它应该支持.NET Core 2.1.3——但它仍然抱怨.NET Core 2.1.3不受支持。这对我来说没有意义

这里可能有什么问题?

(对于我的回答,我假设您正在构建一个依赖于框架的应用程序,而不是一个自包含的应用程序。)

您不能将
2.1.3
直接设置为
.csproj
中的
,因为这只是补丁版本的不同

仅允许以下条目:
因此,在您的情况下,
.csproj
需要有
netcoreapp2.1

但正如Damir在评论中指出的那样,如果您还将
2.1.3
添加到
中,则可以强制执行该版本

如果打开“管理NuGet软件包”对话框并查看隐式使用的metapackage
Microsoft.NETCore.App
,可以检查此更改的效果

没有
它是
2.1.0
,否则它应该是
2.1.3

但除此之外,有时还有其他因素将隐含地决定正在使用的版本

例如,如果您想要构建一个自包含的应用程序,您必须指定
,这也将强制框架版本为
2.1.3
,因为它将自动在您的计算机上运行

也就是说,我不建议在大多数情况下手动设置任何

从.NET Core 2.1开始,所有依赖于框架的应用程序(使用.NET Core 2.0或更高版本构建)到最新的次要版本,如果系统上不存在运行时的原始版本,则安装该版本

因此,如果目标系统上只安装了.NET Core 2.1.3,则依赖于框架的.NET Core 2.1.0应用程序将自动使用该运行时和框架


您可以阅读更多有关.NET核心版本选择机制的信息。

我也有同样的问题,当时正在使用visual studio 2017,并安装了最新的.NET sdk(发布2.2.401时安装了该sdk)。并将其添加到global.json文件(我将其作为项目根目录)中 这是我的问题

{
  "sdk": {
    "version": "2.2.107"
   }
}
另请参见visual studio开发者社区论坛。

尝试设置
2.1.3
RuntimeFrameworkVersion
元素覆盖默认版本