dotnet / roslyn

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/
MIT License
18.7k stars 3.98k forks source link

Roslyn 4.10.0 does not compile for .NET 6 #74016

Open josefpihrt opened 2 weeks ago

josefpihrt commented 2 weeks ago

Version Used: 4.10.0

Steps to Reproduce:

After updating Roslyn references from 4.9.2 to 4.10.0 the project cannot be compiled for .NET 6

PR: https://github.com/dotnet/roslynator/pull/1483 Job: https://github.com/dotnet/roslynator/actions/runs/9527109706/job/26263368490

Copy of output from the job above:

Run dotnet restore
  Determining projects to restore...
  Restored /home/runner/work/roslynator/roslynator/src/Core/Core.csproj (in 2.75 sec).
  Restored /home/runner/work/roslynator/roslynator/src/CSharp/CSharp.csproj (in 2.8 sec).
  Restored /home/runner/work/roslynator/roslynator/src/CSharp.Workspaces/CSharp.Workspaces.csproj (in 3.06 sec).
  Restored /home/runner/work/roslynator/roslynator/src/Workspaces.Core/Workspaces.Core.csproj (in 249 ms).
  Restored /home/runner/work/roslynator/roslynator/src/VisualBasic/VisualBasic.csproj (in 658 ms).
  Restored /home/runner/work/roslynator/roslynator/src/VisualBasic.Workspaces/VisualBasic.Workspaces.csproj (in 419 ms).
  Restored /home/runner/work/roslynator/roslynator/src/Documentation/Documentation.csproj (in 878 ms).
/home/runner/work/roslynator/roslynator/src/CommandLine/CommandLine.csproj : error NU[17](https://github.com/dotnet/roslynator/actions/runs/9527109706/job/26263368490#step:5:18)01: Warning As Error: Package 'Microsoft.Build 17.10.4' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework 'net6.0'. This package may not be fully compatible with your project.
/home/runner/work/roslynator/roslynator/src/CommandLine/CommandLine.csproj : error NU1701: Warning As Error: Package 'Microsoft.IO.Redist 6.0.0' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework 'net6.0'. This package may not be fully compatible with your project.
  Failed to restore /home/runner/work/roslynator/roslynator/src/CommandLine/CommandLine.csproj (in 7.1 sec).

Similar issue: https://github.com/dotnet/roslyn/issues/71784

I would like to know if this issue can be fixed or if I have to drop support for .NET 6 SDK for my .NET CLI tool (after updating to 4.10.0)

jjonescz commented 2 weeks ago

Looks like it's just a warning, not an error. Does anything break if it's suppressed?

josefpihrt commented 2 weeks ago

@jjonescz I didn't notice it's a warning.

Anyway, the build fails:

MSBuildWorkspaceCommand.cs(13,30): Error CS0234 : The type or namespace name 'MSBuild' does not exist in the namespace 'Microsoft.CodeAnalysis' (are you missing an assembly reference?)
dibarbet commented 2 weeks ago

(Triage) Likely duplicate of https://github.com/dotnet/roslyn/issues/71784, assigning over to Jason