Visual Studio .NET 8生成问题:分析器程序集引用了编译器的版本“4.8.0.0”,该版本比当前运行的版本“4.7.0.0”新

fae0ux8s  于 2023-11-21  发布在  .NET
关注(0)|答案(1)|浏览(1175)

我把我的SDK升级到了.NET 8,但是当我使用.NET 6构建我的项目时出现了一个问题!
错误:
错误CS 9057分析器程序集“C:\Program Files\dotnet\sdk\8.0.100\Sdks\Microsoft.NET.Sdk.Razor\source-generators\Microsoft.NET.Sdk.Razor.SourceGenerators.dll”引用了编译器的版本“4.8.0.0”,该版本比当前运行的版本“4.7.0.0”新。
我已经看过这个问题了:How to fix "The analyzer assembly references version '4.7.0.0' of the compiler, which is newer than the currently running version '4.6.0.0'."
但是他们提到删除.NET 8来解决这个问题!
我的SDK列表:

  1. 7.0.404 [C:\Program Files\dotnet\sdk]
  2. 8.0.100 [C:\Program Files\dotnet\sdk]

字符串
.csproj:

  1. <PropertyGroup>
  2. <TargetFramework>net6.0</TargetFramework>
  3. <ImplicitUsings>enable</ImplicitUsings>
  4. <Nullable>enable</Nullable>
  5. <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  6. </PropertyGroup>


目前我无法将此项目升级到使用.NET 8(计划中)。
有没有办法在不删除.NET 8 SDK的情况下解决这个问题?

fruv7luv

fruv7luv1#

非常感谢@GuruStron,他的回答解决了我的问题:https://stackoverflow.com/a/76741003/6023173
我试着在我的例子中复制它,我的SDK列表是这样的:

  1. PS > dotnet --list-sdks
  2. 7.0.404 [C:\Program Files\dotnet\sdk]
  3. 8.0.100 [C:\Program Files\dotnet\sdk]

字符串
因此,我们必须通过运行以下命令将global.json添加到项目的根目录中(靠近*.sln文件):

  1. PS path-to-sln-file> dotnet new globaljson --sdk-version 7.0.404


哪个版本的7.0.404是我构建项目的最后一个SDK版本。因此该命令将像这样添加global.json

  1. {
  2. "sdk": {
  3. "version": "7.0.404"
  4. }
  5. }


现在我一切都好了。

展开查看全部

相关问题