当前的.NET SDK不支持以.NET Core 2.1.3为目标
我想确保我的应用程序是基于.NET Core 2.1.3构建的,因此我安装了SDK的2.1.401版,并将项目的当前的.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不支持
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软件包”对话框并查看隐式使用的metapackageMicrosoft.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
元素覆盖默认版本