![](/img/trans.png)
[英]Visual Studio Not Using Correct .NET SDK on Visual Studio For Mac 2022
[英]Visual Studio for Mac 2022 does not use expected .NET6 SDK
我尝试构建一个在GitHub下载的示例TodoApp ,其中包含一个基于.net 6的项目。
我使用的是Visual Studio for Mac 2022 v17.3.6(build 20)和Visual Studio for Mac Preview (17.4 build 715)。
当我尝试恢复这些解决方案的包时,出现与项目TodoAppService.NET6相关的错误:
Getting restore information for project /Users/user/Projects/AzureSamples/azure-mobile-apps/samples/TodoApp/TodoAppService.NET6/TodoAppService.NET6.csproj
/usr/local/share/dotnet/sdk/5.0.408/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(141,5) : error NETSDK1045: The current .NET SDK does not support targeting .NET 6.0. Either target .NET 5.0 or lower, or use a version of the .NET SDK that supports .NET 6.0.
Unable to create package spec for project. '/Users/user/Projects/AzureSamples/azure-mobile-apps/samples/TodoApp/TodoAppService.NET6/TodoAppService.NET6.csproj'
但是,关于我计算机上的 .Net SDK,一切似乎都是正确的:
do.net --list-sdks
命令返回:2.1.302 [/usr/local/share/dotnet/sdk]
2.1.504 [/usr/local/share/dotnet/sdk]
2.1.505 [/usr/local/share/dotnet/sdk]
2.1.700 [/usr/local/share/dotnet/sdk]
2.1.701 [/usr/local/share/dotnet/sdk]
3.0.100 [/usr/local/share/dotnet/sdk]
3.0.101 [/usr/local/share/dotnet/sdk]
3.1.100 [/usr/local/share/dotnet/sdk]
3.1.101 [/usr/local/share/dotnet/sdk]
3.1.102 [/usr/local/share/dotnet/sdk]
3.1.200 [/usr/local/share/dotnet/sdk]
3.1.300 [/usr/local/share/dotnet/sdk]
3.1.401 [/usr/local/share/dotnet/sdk]
3.1.402 [/usr/local/share/dotnet/sdk]
3.1.403 [/usr/local/share/dotnet/sdk]
3.1.404 [/usr/local/share/dotnet/sdk]
3.1.406 [/usr/local/share/dotnet/sdk]
3.1.407 [/usr/local/share/dotnet/sdk]
3.1.408 [/usr/local/share/dotnet/sdk]
3.1.409 [/usr/local/share/dotnet/sdk]
3.1.410 [/usr/local/share/dotnet/sdk]
3.1.411 [/usr/local/share/dotnet/sdk]
3.1.412 [/usr/local/share/dotnet/sdk]
3.1.413 [/usr/local/share/dotnet/sdk]
3.1.418 [/usr/local/share/dotnet/sdk]
3.1.419 [/usr/local/share/dotnet/sdk]
3.1.421 [/usr/local/share/dotnet/sdk]
3.1.422 [/usr/local/share/dotnet/sdk]
3.1.423 [/usr/local/share/dotnet/sdk]
5.0.100 [/usr/local/share/dotnet/sdk]
5.0.101 [/usr/local/share/dotnet/sdk]
5.0.103 [/usr/local/share/dotnet/sdk]
5.0.201 [/usr/local/share/dotnet/sdk]
5.0.202 [/usr/local/share/dotnet/sdk]
5.0.203 [/usr/local/share/dotnet/sdk]
5.0.301 [/usr/local/share/dotnet/sdk]
5.0.302 [/usr/local/share/dotnet/sdk]
5.0.400 [/usr/local/share/dotnet/sdk]
5.0.401 [/usr/local/share/dotnet/sdk]
5.0.407 [/usr/local/share/dotnet/sdk]
5.0.408 [/usr/local/share/dotnet/sdk]
6.0.300 [/usr/local/share/dotnet/sdk]
6.0.302 [/usr/local/share/dotnet/sdk]
6.0.400-preview.22330.6 [/usr/local/share/dotnet/sdk]
6.0.400 [/usr/local/share/dotnet/sdk]
6.0.401 [/usr/local/share/dotnet/sdk]
do.net --version
命令返回:6.0.401
我已经尝试了描述类似问题的关于这个主题的解决方案:
version="5.0.408"
sudo rm -rf /usr/local/share/dotnet/sdk/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/$version
sudo rm -rf /usr/local/share/dotnet/host/fxr/$version
version="6.0.401"
sudo rm -rf /usr/local/share/dotnet/sdk/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/$version
sudo rm -rf /usr/local/share/dotnet/host/fxr/$version`
但是当我尝试恢复包时,我总是遇到同样的问题......
编辑:一些测试
我仍然没有找到任何解决方案,但我做了一些测试。
首先,我使用 .NET 6 创建了一个基本的控制台应用程序: 我可以构建并启动这个基本应用程序。
之后,我重新创建了项目TodoAppService.NET6 :我可以恢复包并构建它。
在 Visual Studio 中,我可以看到使用了最新的Microsoft.NETCore.App框架:
但是当我在 Visual Studio 中打开TodoApp解决方案时,似乎无法识别相同的框架,因为它显示为没有版本的 SDK:
编辑:新闻测试
我通过在TodoApp解决方案的TodoAppService.NET6项目中添加一个global.json
文件来进行新测试:
{
"sdk": {
"version": "6.0.401",
"rollforward": "minor"
}
}
这并没有改变任何东西,当我尝试恢复包时我总是有同样的错误......
这真的很令人沮丧,我没有任何其他想法来解决这个问题......
有没有可能你的解决方案中混用了.NET和经典项目,导致Mono上MSBuild出现问题。 这个stack overflow issue解释了这个问题
Go 到您的解决方案属性,然后构建 -> 常规并取消选中“在 Mono 上使用 MSBuild 构建”。 如果这是您的问题,您应该会看到项目将在取消选中该框后立即构建。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.