尝试升级到专业版的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 SDK版本 支持.NET Core 2.1。“
当我尝试构建现有项目时,我收到错误
“当前的.NET SDK不支持以.NET Core 2.1为目标 目标.NET Core 2.0或更低版本,或使用.NET SDK版本 支持.NET Core 2.1。“
我在目标框架中没有看到“.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
答案 0 :(得分:56)
问题在于微软将很多人与他们编写.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,微软支持人员解释了这个问题:
“感谢您的反馈!我们已确定此问题是 不是一个bug。第一个支持.NET Core 2.1的SDK是 2.1.300-preview1。我们知道版本控制令人困惑,这就是为什么从2.1.300开始,SDK的主要版本现在将是 与运行时的major.minor版本对齐。“
所以...为了通过SDK获得.NET Core 2.1支持,你至少需要安装2.1.300版本的SDK(因为2.1.2不是.NET Core 2.1)...是的,令人困惑。感谢微软在这方面失去了一些时间。
答案 1 :(得分:16)
在安装2.2.100-preview3-009430然后更新到Visual Studio 15.9.2之后,这发生在我身上。
我通过启用“使用.NET Core SDK的预览”选项来解决。
转到:工具>选项>项目和解决方案> .NET Core
选中“使用.NET Core SDK的预览”框
重新启动Visual Studio并重建解决方案。
答案 2 :(得分:13)
我解决了这个问题。 原因是我安装了
aspnetcore-runtime-2.1.0-preview1-final-win-x64
和.net core SDK 2.1.4-x64
个版本。 c:\Program Files\dotnet
c:\Program Files(x86)\dotnet
中的sdk文件。解决这个问题
安装了x86版本的sdk和aspnetcore运行时,
将MSBuildSDKsPath环境变量设置为指向新的安装路径。
从控制台
问题VS2017 Update 3 'Microsoft.NET.Sdk.Web' could not be found有助于解决此问题。
答案 3 :(得分:5)
我发生了同样的事情,但是后来发生了.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”。
答案 4 :(得分:3)
https://www.microsoft.com/net/download/visual-studio-sdks
您可以从上述站点下载SDK
检查计算机中的SDK 路径C:\ Program Files \ dotnet \ sdk
在Visual Studio中更改或检查目标框架,
右键单击启动应用程序或项目=>应用程序=>目标框架。
您可以更改框架并构建解决方案并还原块包。
答案 5 :(得分:2)
停止IIS发布解决了这个问题。但首先我需要安装net core 2.1 SDK并更新Visual Studio。
答案 6 :(得分: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可以完成这项工作。
答案 7 :(得分: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一样,您一切顺利。 “
答案 8 :(得分:0)
Microsoft似乎通过鼓励用户在不良习惯盛行的情况下删除使用较旧软件的功能,从而鼓励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页面。
绕过这些更改以增加过去为降低软件工程标准而构建的软件的永久性,这不是最佳实践。
答案 9 :(得分:0)
我正在使用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=visual-studio
-https://docs.microsoft.com/fr-fr/dotnet/core/tools/global-json
-https://andrewlock.net/the-sdk-microsoft-net-sdk-web-specified-could-not-be-found/
我之前做过的其他事情(似乎无法解决问题,但可能有所帮助?):
-将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 Core CLI可执行文件:C:\Program Files\dotnet\dotnet.exe
-使用MS Build版本(自动检测到16.0):C:\Program - Files\dotnet\sdk\2.1.602\MSBuild.dll
答案 10 :(得分:0)
检查以确保项目根文件夹中没有global.json
文件,该文件会强制您的项目仅使用.NET SDK 2.1。
如果有此global.json文件,请删除,然后重新启动Visual Studio。
听起来很尴尬,我花了将近一个小时的时间来修补,甚至下载了多个SDK版本以强制其使用2.2
答案 11 :(得分:0)
安装SDK 2.2.300后,我开始收到此错误。看完这篇文章和其他一些我 将其降级到SDK 2.2.1xx 错误消失了。 注意:我必须卸载SDK 2.2.300,并在安装SDK 2.2.1xx之后重新启动。
答案 12 :(得分:0)
我遇到了这个问题,我重新安装了VS2017。修好了!
答案 13 :(得分:0)
转到您的管道。 单击编辑管道。 单击代理规范下拉列表。 将其更改为Windows 2019。 单击“保存并排队”。
然后您去。 对我来说很好。
答案 14 :(得分:0)
我在 Visual Studio 2017 中遇到了同样的问题。右键单击项目并转到属性。从那里您可以更改目标框架。选择合适的框架并运行您的项目。这个解决方案对我有用。