首页 文章

当前的.NET SDK不支持以.NET Core 2.1为目标 . 目标.NET Core 2.0或更低版本,或使用支持.NET Core 2.1的.NET SDK

提问于
浏览
34

已尝试升级到visual studio 2017 v 15.6.0的专业版(预览7.0)

并安装了aspnetcore-runtime-2.1.0-preview1-final-win-x64和.net core SDK 2.1.4 .

当我创建一个新的Web应用程序时,我收到一个错误说

“当前的.NET SDK不支持以.NET Core 2.1为目标 . 要么针对.NET Core 2.0或更低版本,要么使用支持.NET Core 2.1的.NET SDK版本 . ”

当我尝试构建现有项目时,我收到错误

“当前的.NET SDK不支持以.NET Core 2.1为目标 . 要么针对.NET Core 2.0或更低版本,要么使用支持.NET Core 2.1的.NET SDK版本 . ”

我在目标框架中没有看到“.net core 2.1”

我的计算机中没有global.json文件

当我尝试dotnet --info时,我明白了

c:\ source \ dnacloud \ testapp> dotnet --info .NET命令行工具(2.1.100)产品信息:
版本:2.1.100
提交SHA-1哈希:b9e74c6

运行环境:
操作系统名称:Windows
操作系统版本:10.0.16299
操作系统平台:Windows
RID:win10-x64
基本路径:C:\ Program Files \ dotnet \ sdk \ 2.1.100 \

Microsoft .NET核心共享框架主机

版本:2.0.5
Build :17373eb129b3b05aa18ece963f8795d65ef8ea54

8 回答

  • 0

    这里的问题是,微软将很多人与他们编写.NET Core SDK的方式混为一谈 .

    在原始海报的消息中,路径C:\ Program Files \ dotnet \ sdk \ 2.1.100 \似乎不代表.NET Core 2.1运行时(但您认为它确实如此) .

    我在developercommunity.visualstudio.com上发现了这篇文章The current .NET SDK does not support targeting .NET Core 2.1,微软支持人员解释了这个问题:

    “感谢您的反馈!我们已确定此问题不是错误 . 第一个支持.NET Core 2.1的SDK是2.1.300-preview1 . 我们知道版本控制令人困惑,这就是为什么从2.1.300开始, SDK的major.minor版本现在也将与运行时的major.minor版本对齐 . “

    所以...为了通过SDK获得.NET Core 2.1支持,你至少需要安装2.1.300版本的SDK(因为2.1.2不是.NET Core 2.1)...是的,令人困惑 . 感谢微软在这方面失去了一些时间 .

  • 1

    我解决了这个问题 . 原因是我安装了

    • aspnetcore-runtime-2.1.0-preview1-final-win-x64

    • .net core SDK 2.1.4-x64 个版本 .

    • 安装将sdk文件放在 c:\Program Files\dotnet

    • 但VS2017 32位正在寻找 c:\Program Files(x86)\dotnet 中的sdk文件 .

    要解决这个问题

    • 安装了x86版本的sdk和aspnetcore运行时,

    • 将MSBuildSDKsPath环境变量设置为指向新的安装路径 .

    • 从控制面板中删除了所有过时的sdks

    问题VS2017 Update 3 'Microsoft.NET.Sdk.Web' could not be found帮助解决了这个问题 .

  • 1

    安装.NET Core SDK 2.1.300-preview2为我做了诀窍:

    更新:以防万一,最近发布了一个较新的版本 . 您可以下载适用于2.2.0-preview1的新.NET Core SDK(包括ASP.NET 2.2.0-preview1)here .

    当你得到这样的错误时,请参阅此answer

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

  • 0

    在安装2.2.100-preview3-009430然后更新到Visual Studio 15.9.2之后,这发生在我身上 .

    我通过启用“使用.NET Core SDK的预览”选项解决了这个问题 .

    • 转到:工具>选项>项目和解决方案> .NET Core

    • 选中“使用.NET Core SDK的预览”框

    • 重新启动Visual Studio并重建解决方案 .

    VS Preview Options

  • 4

    停止IIS发布解决了这个问题 . 但首先我需要安装net core 2.1 SDK并更新Visual Studio .

  • 7

    我安装了.Net Core SDK 2.1.4并按照本文中的其他答案解决了我的问题 . 最后为我做的是 installing .Net Core SDK version 2.1.301 ,并卸载所有其他版本 . 似乎SDK 2.1.4无法以.Net Core 2.1为目标,但SDK 2.1.301可以完成这项工作 .

  • 44

    看起来微软鼓励那些早期采用Net Core 2.1中最新开发软件的人更好的编码实践,因为他们不再使用旧版本的软件,而这些软件也存在不良习惯 . Net Core 2.0和旧版本几乎已经停产,因此根本不应该使用 . (https://blogs.msdn.microsoft.com/dotnet/2018/06/20/net-core-2-0-will-reach-end-of-life-on-september-1-2018/

    1)Microsoft已经删除了ServiceLocator,因为它被广泛认为是反模式导致难以理解的代码 .

    2)为了改进MVC应用程序,AccountController从身份验证/授权中删除,以鼓励使用实现单一责任原则的Razor页面 .

    为了增加过去为降低软件工程标准而构建的软件的永久性,绕过这些变化并不是最佳做法 .

  • 13

    https://www.microsoft.com/net/download/visual-studio-sdks

    您可以从以上站点下载SDK

    检查机器路径C:\ Program Files \ dotnet \ sdk中的SDK

    在visual studio中更改或检查目标框架,

    Right click on Startup Application or project => Application => Target Framework.

    您可以更改框架并构建解决方案并恢复块包 .

    enter image description here

相关问题