繁体   English   中英

Visual Studio for Mac 2022 不使用预期的 .NET6 SDK

[英]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

我已经尝试了描述类似问题的关于这个主题的解决方案:

  • 我已经像这样删除了 SDK 5.0.408 和 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`
  • 我重新安装了相同的 SDK

但是当我尝试恢复包时,我总是遇到同样的问题......

编辑:一些测试

我仍然没有找到任何解决方案,但我做了一些测试。

首先,我使用 .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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM