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


80

已尝试升级到Visual Studio 2017 v 15.6.0(Preview 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)

Product Information:
Version: 2.1.100
Commit SHA-1 hash: b9e74c6

Runtime Environment:
OS Name: Windows
OS Version: 10.0.16299
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.1.100\

Microsoft .NET Core Shared Framework Host

Version : 2.0.5
Build : 17373eb129b3b05aa18ece963f8795d65ef8ea54

1
这是最前沿的东西,任何15.x.0 VS版本都被设计巧妙地破坏了。解决方法不正确。使用帮助>发送反馈>报告问题非常重要,否则无法尽快解决。
汉斯·帕桑

7
“被设计破坏” ==不良设计。我知道MS希望快速部署,但是他们重新引入到开发环境中的依赖地狱使我想起了尝试在90年代在Linux内核上构建代码的方法
Jeremy Holovacs

Answers:


68

这里的问题是,微软使.NET Core SDK的编号方式使很多人感到困惑。

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

我碰到了这篇文章。当前.NET SDK不支持在developercommunity.visualstudio.com上以.NET Core 2.1为目标,Microsoft支持人员在其中解释了这一困惑:

“感谢您的反馈!我们已确定此问题不是错误。第一个支持.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)...是的,令人困惑。谢谢微软为此付出的一些时间。


22
“我们已确定此问题不是错误”,我将其称为错误。
Script Kitty

2
“我们已经确定这令人尴尬,因此我们不会将其称为错误。”
克里斯·贝伦斯

-看起来不好
基督徒

29

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

我通过启用“使用.NET Core SDK的预览”选项来解决。

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

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

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

VS预览选项


在仅安装了“构建工具”的构建服务器上会发生什么?那里没有GUI。
springy76

1
适用于NETSDK1045当前的.NET SDK不支持定位.NET Core 3.0。当尝试大火时
Vamsi J

1
VS v.16.1中没有这样的选项
Eugene Maksimov,

8
它已移至工具>选项>环境>预览功能
Ludwo

18

安装.NET Core SDK 2.1.300-preview2帮了我大忙:

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

当您遇到一般这样的错误时,请参见以下答案

当前的.NET SDK不支持定位.NET Core 2.X


我的解决方案未构建,但是现在IIS Express将物理根目录为“ C:\ Projects \ OrchardCore \ src \ OrchardCore.Cms.Web \”的错误消息“ MACHINE / WEBROOT / APPHOST / ORCHARDCORE.CMS.WEB”吐出来了,但启动过程失败与命令行'C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ Extensions \ Microsoft \ Web Tools \ ProjectSystem \ VSIISExeLauncher.exe -argFile“ C:\ Users \ daves \ AppData \ Local \ TEMP \ tmp221C.tmp '“,错误码=' 0X80004005:0
大卫Sopko

@DavidSopko最有可能你需要照顾的环境变量LAUNCHER_PATH和LAUNCHER_ARGS的blog.lextudio.com/...
梅德巴甫洛夫

13

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

  • aspnetcore-runtime-2.1.0-preview1-final-win-x64
  • .net core SDK 2.1.4-x64 版本。
  • 安装将sdk文件放入 c:\Program Files\dotnet
  • 但是VS2017 32bit一直在寻找sdk文件c:\Program Files(x86)\dotnet

为了解决这个问题

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

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

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

问题VS2017更新3“Microsoft.NET.Sdk.Web”无法找到解决此问题的帮助。


我遇到了同样的问题,并可能在上个月某个地方安装了aspnetcore-runtime-2.1.0-preview1-final-win-x64。我不记得是从哪里安装的,甚至现在也看不到任何可用于此类下载的链接(希望该页面可能讨论了此问题)从何处安装了x86版本?您是否可以在答案中添加更多描述,因为这似乎是常见问题。
rahulaga_dev

1
@RahulAgarwal游戏有点晚了,但是,如果您仍然没有找到正确的下载页面,它是:microsoft.com/net/download/windows单击x86下载链接。
卡斯腾·格林

11

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

您可以从上述网站下载SDK

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

在Visual Studio中更改或检查目标框架,

右键单击启动应用程序或项目=>应用程序=>目标框架。

您可以更改框架并构建解决方案并还原块包。

在此处输入图片说明


添加类库(.NET Core)项目后,出现OP错误。事实证明,默认情况下未设置目标框架,因此我要做的就是从下拉列表中选择它并保存,问题已解决。
jhhwilliams '19

7

同样的事情发生在我身上,但后来出现在.NET Core 2.2版中。我安装了.NET Core 2.2 SDK的最新版本,当时是2.2.202。Visual Studio允许我为Core 2.2创建一个新项目,但是它显示了错误:

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

我项目的目标框架为空,并且下拉列表未显示2.2。

安装.NET Core SDK 2.2.103之后,错误消失了,并且下拉菜单显示“ .NET Core 2.2”。


2

停止IIS进行发布可以解决该问题。但是首先我需要安装net core 2.1 SDK并更新Visual Studio。


2

我安装了.Net Core SDK 2.1.4,并按照本文中的其他答案进行操作,但没有解决我的问题。最终对我来说,是安装.Net Core SDK版本2.1.301并卸载所有其他版本。似乎SDK 2.1.4不能以.Net Core 2.1为目标,但SDK 2.1.301可以完成。


这是否意味着即使将Visual Studio安装在2.1.301旁边,它也不使用SDK 2.1.401?
巴特·沃达

2

检查以确保您没有 global.json的项目根文件夹中文件,该文件强制您的项目仅使用.NET SDK 2.1。

如果您有此global.json文件,请将其删除,然后重新启动Visual Studio。

听起来很尴尬,我花了将近一个小时的时间来修补,甚至下载了多个SDK版本以强制其使用2.2


2

我也以这种方式解决了这个问题:

检查可用的dotnet SDK版本

C:\Users\me>dotnet --list-sdks

 ##2.1.202 [C:\Program Files\dotnet\sdk]
 ##2.1.505 [C:\Program Files\dotnet\sdk]
 ##2.1.508 [C:\Program Files\dotnet\sdk]
 ##2.1.509 [C:\Program Files\dotnet\sdk]
 ##2.1.511 [C:\Program Files\dotnet\sdk]
 ##2.1.514 [C:\Program Files\dotnet\sdk]
 ##2.1.801 [C:\Program Files\dotnet\sdk]

我在所有这些版本上测试了我的构建,直到我从“程序和功能”中卸载了以上所有内容之后,该构建才起作用。然后从最新下载:

https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-3.1.300-windows-x64-installer

这工作了。不要浪费时间,就像我刚安装了最新版本的dotnet sdk一样,您一切顺利。”


1

我正在使用Rider,

当前的.NET SDK不支持定位.NET Core 2.2。目标.NET Core 2.1或更低版本,或使用支持.NET Core 2.2的.NET SDK版本。

我有:

$ dotnet --list-sdks
2.1.2 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.505 [C:\Program Files\dotnet\sdk]
2.1.602 [C:\Program Files\dotnet\sdk]
2.2.202 [C:\Program Files\dotnet\sdk]

我尝试仅保留最新的SDK,并具有:

项目“ WebApplication3”加载失败:找不到指定的SDK“ Microsoft.NET.Sdk.Web”。

因此,我删除了所有内容并重新安装了2.1.602。来自Rider的新项目。 而且有效。不能说我了解如何解决...

对于一些民族的问题似乎被链接到global.json,请参阅:
- https://docs.microsoft.com/fr-fr/aspnet/core/migration/21-to-22?view=aspnetcore-2.2&tabs=视觉工作室
- https://docs.microsoft.com/fr-fr/dotnet/core/tools/global-json
- //andrewlock.net/the-sdk-microsoft-net-sdk-web-specified-找不到/

我之前做过的其他事情(似乎无法解决问题,但可能有所帮助?):
-将Rider从2018.3.2更新为2018.3.4(最新)。-安装Mono(在研究Rider构建设置时使用的是Unity中的一种)。
-尝试使用Jetbrain定制的MSBuild(用于Linux的一种)没有成功。
-从VS安装程序安装与.NET Core相关的所有内容。
-最新更新VS社区。- 重启。

Rider/Build, Execution, Deployement/Toolset and Build我现在有:
单可执行文件:C:\Program Files\Mono\bin\mono.exe
- NET核心CLI可执行文件:C:\Program Files\dotnet\dotnet.exe
-使用MS生成版本(自动检测到16.0):C:\Program - Files\dotnet\sdk\2.1.602\MSBuild.dll


我很确定这与您的帖子的最后一行有关:因此,Rider实际使用的是哪个MSBuild版本。它必须指向您要使用的最新.NET Core SDK提供的版本。否则,出问题了,您需要重新安装SDK ...
rsenna

0

安装SDK 2.2.300后,我开始出现此错误。阅读本文和其他内容后,我 将其降级为SDK 2.2.1xx ,错误消失了。注意:我必须卸载SDK 2.2.300,并在安装SDK 2.2.1xx之后重新启动。



0

转到您的管道。单击编辑管道。单击代理规范下拉列表。将其更改为Windows2019。单击“保存并排队”。

在这里,你去。对我来说很好。


-1

微软似乎正在鼓励那些习惯于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)微软已经删除了ServiceLocator,因为它被广泛认为是一种反模式,导致难以理解的代码。

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

避免绕过这些更改以增加过去为降低软件工程标准而构建的软件的永久性,不会被视为最佳实践。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.