我正在尝试将项目从.net 5升级到.net 6
我正在使用Visual Studio for Mac 2022 V17. 3(我也试过Visual Studio for Mac Preview 2022 V17. 4,但没有运气)
我已经在机器上安装了.net 6 sdk。dotnet --list-sdks
的输出是:
dotnet --list-sdks
2.2.100 [/usr/local/share/dotnet/sdk]
3.0.101 [/usr/local/share/dotnet/sdk]
3.1.301 [/usr/local/share/dotnet/sdk]
3.1.419 [/usr/local/share/dotnet/sdk]
3.1.422 [/usr/local/share/dotnet/sdk]
5.0.100 [/usr/local/share/dotnet/sdk]
5.0.408 [/usr/local/share/dotnet/sdk]
6.0.300 [/usr/local/share/dotnet/sdk]
6.0.400 [/usr/local/share/dotnet/sdk]
dotnet --version
的输出为:
dotnet --version
6.0.400
我尝试了使用和不使用global.json两种情况。当我尝试使用global.json时,global.json的内容如下:
{
"sdk": {
"version": "6.0.400"
}
}
我也尝试了我的其他6 sdk版本,
{
"sdk": {
"version": "6.0.300"
}
}
项目的TargetFramework设置为net6.0
<TargetFramework>net6.0</TargetFramework>
尽管如此,下面是我尝试从Visual Studio构建时的输出:(从命令行构建)
/usr/本地/共享/dotnet/软件开发工具/5.0.408/软件开发工具/Microsoft.NET.软件开发工具/目标/Microsoft.NET.目标框架推理目标(141,5):错误NETSDK 1045:当前的.NET SDK不支持以.NET 6.0为目标。请以.NET 5.0或更低版本为目标,或者使用支持.NET 6.0的.NET SDK版本。
(bold重点是我自己,在sdk版本上)
它只尝试使用5.0.408
我知道有很多关于堆栈溢出的问题和答案,其中一个例子是this question,唯一的问题是在其他类似问题中提供的解决方案没有解决我的问题。似乎有某种缓存发生,我不能弄清楚。我只是希望Visual Studio使用正确的SDK版本。
如果我从命令行运行dotnet build MySolution.sln
,它会使用正确的SDK进行构建。另一方面,Visual Studio则不会。它只使用5.0.408。在我的文件结构中,没有任何global.json指向net 5 SDK。在我的解决方案中,没有任何项目以5为目标,它们都以6为目标。
3条答案
按热度按时间nafvub8i1#
我设法解决了这个问题:
如果这不起作用,我找到了另一个解决方案,那就是在解决方案构建属性中取消选中“在mono上用MSBuild构建”。(右键单击解决方案文件,转到属性,“构建〉常规”,取消选中)
cgh8pdjw2#
我试着像你一样但没用。
我已经删除了SDK 5.0.408和6.0.401,如下所示:
然后我重新安装了SDK 5.0.408和6.0.401。
但是当我尝试从Visual Studio还原包时,总是出现同样的错误。
还有别的事吗?
sg3maiej3#
在Visual Studio 2022 for Mac内部,我进入工具,然后SDK管理器,并设置此选项,它在选择此文件后自动检测SDK: