当前的.NET SDK不支持针对.NET Core 3.0 | 3.1 | 5.0 | 6.0进行目标定向。

54

我刚刚下载了.NET Core 3.0.100的发布版本。
它与我之前安装的旧版本同时存在:

enter image description here

当我尝试运行dotnet restore命令来为一个目标为.NET Core 3 (<TargetFramework>netcoreapp3.0</TargetFramework>)的项目恢复依赖时,我会收到以下错误提示:
C:\Program Files\dotnet\sdk\2.2.202\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(137,5): error NETSDK1045: The current .NET SDK does not support targeting .NET Core 3.0.  Either target .NET Core 2.2 or lower, or use a version of the .NET SDK that supports .NET Core 3.0.

我有一个global.json文件,明确说明我需要3.0.100 SDK

{
  "sdk": {
    "version": "3.0.100"
  }
}

我知道我可以编辑MSBuildSDKsPath环境变量,将其指向3.0.100 SDK,并且它可以工作,但我不想这样做,因为我的机器上还有其他需要使用旧版本.NET Core的项目。
是否有一种方法使dotnet工具使用global.json中声明的SDK,而不是MSBuildSDKsPath中的SDK?
编辑:我使用Visual Studio Code。

2
拥有标准的.NET库的好处在于,可以选择众多的标准。 - Ian Boyd
我的回答解决了你的问题吗? - Dominic Jonas
不是完整的答案,但当我遇到这个错误时,删除所有bin、obj、内部构建输出和.vs文件夹,然后重新构建就可以解决错误。(构建清理失败。)我第一次在尝试向我的项目添加新项后遇到了这个错误,当我将它们移除后,错误并没有消失。 - Denise Skidmore
4个回答

86

您还需要将 visual studio 更新到最低支持的版本:

.NET Core 3.0

  • 最低要求 visual studio v16.3

.NET Core 3.1

  • 最低要求 visual studio v16.5

.NET Core 5.0

  • 最低要求 visual studio v16.6 最新预览版

.NET Core 6.0

  • 最低要求 visual studio v17.0 最新预览版

输入图片说明

(https://dotnet.microsoft.com/download/dotnet-core/3.0)


![enter image description here

(https://dotnet.microsoft.com/download/dotnet-core/3.1)


输入图片说明

(https://dotnet.microsoft.com/download/dotnet/5.0)


在此处输入图片描述

(https://dotnet.microsoft.com/download/dotnet/6.0)

这段内容展示了一个图片,并包含一个下载链接,链接指向微软的官网,用户可以从该网站下载 .NET 6.0。

1
我之前在使用VS CODE时遇到了问题。我将VISUAL STUDIO升级到v16.3版本,现在VS Code可以正常工作了。如果你仔细阅读VS Code中的错误列表,会发现它提到了Visual Studio。这就是我的线索。我更新了Visual Studio,一切都好了。 - Steve G
4
这个答案同样适用于使用Azure DevOps作为CI平台的用户。构建代理(托管或本地)需要访问适当安装的VS 2019,并使用适当的dotnet工具版本来构建3.0 / 3.1项目。 - Josh Gust
5
对我来说,这解决了我的问题。我在Azure DevOps管道中遇到了问题,将我的构建代理从vs17更改为19后解决了问题。谢谢! - Danie
@Danie 我也遇到了同样的问题,你知道在管道配置中怎么更改构建代理吗? - Mronzer
2
安装 .NET 的预览版本时,请确保选中“使用 .NET Core SDK 预览版”(工具 -> 选项 -> 预览功能)。 - Evgeny Gorb
显示剩余4条评论

1
我在Azure DevOps中遇到了与.NET 6相关的错误:
错误NETSDK1045:当前.NET SDK不支持针对.NET 6.0的目标。请选择.NET 5.0或更低版本,或使用支持.NET 6.0的.NET SDK版本。
可以按照以下方式解决该问题:
```xml ```
请参考下图进行配置: enter image description here
steps:
- task: UseDotNet@2
  displayName: 'Install .NET 6 SDK'
  inputs:
    version: 6.0.x
    performMultiLevelLookup: true
这里是关于在 Azure DevOps Pipelines 中构建 .NET Core 应用程序的环境设置。如果您遇到问题,可以查看这个Github讨论帖子

0
当我尝试使用JetBrains Rider构建解决方案时,我遇到了相同的错误。问题最终被发现是Rider使用了错误的msbuild.exe。它自动检测到2017版本而不是2019版本。我不得不在JetBrains设置中手动调整它,在文件|设置|构建、执行、部署|工具集和构建中进行。更多详细信息请参见此处

0

问题将通过以下清单解决:

  1. 环境变量(将其设置为根文件夹)例如C:/Program Files/DotNet作为PATH变量 - 重新启动以使更改生效

  2. 检查Visual Studio版本

  3. 运行dotnet --info检查SDK是否已安装

  4. 如果在环境变量中设置了MSBuildSDKPath,请删除它


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接