dotnet / format

Home for the dotnet-format command
MIT License
1.94k stars 172 forks source link

dotnet format is broken on sdk 8.0 preview #1901

Closed froissant closed 1 year ago

froissant commented 1 year ago

Running dotnet format is broken on sdk 8.0 preview. This is similar to #1800.

Reproduction steps

This was reproduced on fresh installs on multiple machines, all running Ubuntu 22.04 under WSL2

Expected

dotnet format runs on the project without errors

Actual

The process errors out with the following log:

Unhandled exception: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load file or assembly 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at Microsoft.CodeAnalysis.Tools.Analyzers.AnalyzerFinderHelpers.<>c.<LoadAnalyzersAndFixers>b__0_0(Assembly assembly)
   at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.OfTypeIterator[TResult](IEnumerable source)+MoveNext()
   at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
   at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)
   at Microsoft.CodeAnalysis.Tools.Analyzers.AnalyzerFinderHelpers.LoadAnalyzersAndFixers(IEnumerable`1 assemblies)
   at Microsoft.CodeAnalysis.Tools.Analyzers.AnalyzerReferenceInformationProvider.GetAnalyzersAndFixers(Project project)
   at System.Collections.Immutable.ImmutableDictionary.<>c__DisplayClass9_0`3.<ToImmutableDictionary>b__0(TSource element)
   at System.Linq.Utilities.<>c__DisplayClass2_0`3.<CombineSelectors>b__0(TSource x)
   at System.Linq.Enumerable.SelectIListIterator`2.MoveNext()
   at System.Collections.Immutable.ImmutableDictionary`2.AddRange(IEnumerable`1 items, MutationInput origin, KeyCollisionBehavior collisionBehavior)
   at System.Collections.Immutable.ImmutableDictionary`2.AddRange(IEnumerable`1 pairs, Boolean avoidToHashMap)
   at System.Collections.Immutable.ImmutableDictionary`2.AddRange(IEnumerable`1 pairs)
   at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey,TValue](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 keyComparer, IEqualityComparer`1 valueComparer)
   at System.Collections.Immutable.ImmutableDictionary.ToImmutableDictionary[TSource,TKey,TValue](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
   at Microsoft.CodeAnalysis.Tools.Analyzers.AnalyzerReferenceInformationProvider.GetAnalyzersAndFixers(Solution solution, FormatOptions formatOptions, ILogger logger)
   at Microsoft.CodeAnalysis.Tools.Analyzers.AnalyzerFormatter.FormatAsync(Solution solution, ImmutableArray`1 formattableDocuments, FormatOptions formatOptions, ILogger logger, List`1 formattedFiles, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Tools.CodeFormatter.RunCodeFormattersAsync(Solution solution, ImmutableArray`1 formattableDocuments, FormatOptions formatOptions, ILogger logger, List`1 formattedFiles, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Tools.CodeFormatter.FormatWorkspaceAsync(FormatOptions formatOptions, ILogger logger, CancellationToken cancellationToken, String binaryLogPath)
   at Microsoft.CodeAnalysis.Tools.FormatCommandCommon.FormatAsync(FormatOptions formatOptions, ILogger`1 logger, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Tools.Commands.RootFormatCommand.FormatCommandDefaultHandler.InvokeAsync(InvocationContext context)
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c__DisplayClass11_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c__DisplayClass21_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c__DisplayClass18_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__17_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c__DisplayClass15_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__4_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.CommandLineBuilderExtensions.<>c__DisplayClass7_0.<<UseExceptionHandler>b__0>d.MoveNext()
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
File name: 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
File name: 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
File name: 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
File name: 'Microsoft.CodeAnalysis.ExternalAccess.AspNetCore, Version=4.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

Additional information

It was also broken on sdk 8.0.100-preview.5.23303.2

sharwell commented 1 year ago

This was fixed by #1885

froissant commented 1 year ago

Thanks @sharwell for the info, will it be included in preview 7? Because at the moment, in preview 6, it's still broken on my machines (even with a fresh install on a new machine without any other versions of dotnet or in Windows Sandbox)

sharwell commented 1 year ago

I'm not sure how/when the SDK updates and packaging occur. The fix was first included in 8.0.432702.

@arkalyanms

JoeRobich commented 1 year ago

Looking at the version info in the preview 7 branch (https://github.com/dotnet/sdk/blob/release/8.0.1xx-preview7/eng/Version.Details.xml#L73-L77), it appears the build should contain #1885.

froissant commented 1 year ago

Great, thank you! Now I know where to look for this info 🙂

froissant commented 1 year ago

Can confirm that I have no errors anymore with .NET 8.0.0 Preview 7! ❤

JoeRobich commented 1 year ago

@froissant Thanks for confirming!

vanbukin commented 1 year ago

When trying to build the project, I am encountering errors on preview 7. Here is the environment information: Windows 11 Pro Visual Studio 2022 17.7.0 SDK 8.0.100-preview.7.23376.3 However, if I run "dotnet build --configuration Debug" from the CLI, there are no issues. https://github.com/OpenIdentityFramework/OpenIdentityFramework/tree/main/src

Error   CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.   OpenIdentityFramework   C:\Users\vanbukin\src\OpenIdentityFramework\src\libs\OpenIdentityFramework\CSC  1   Active
Error   CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.    OpenIdentityFramework   C:\Users\vanbukin\src\OpenIdentityFramework\src\libs\OpenIdentityFramework\CSC  1   Active
Error   CS0006  Metadata file 'C:\Users\vanbukin\src\OpenIdentityFramework\src\libs\OpenIdentityFramework\obj\Debug\net8.0\ref\OpenIdentityFramework.dll' could not be found    OpenIdentityFramework.InMemory  C:\Users\vanbukin\src\OpenIdentityFramework\src\libs\OpenIdentityFramework.InMemory\CSC 1   Active
Error   CS0006  Metadata file 'C:\Users\vanbukin\src\OpenIdentityFramework\src\libs\OpenIdentityFramework\obj\Debug\net8.0\ref\OpenIdentityFramework.dll' could not be found    OpenIdentityFramework.MySql C:\Users\vanbukin\src\OpenIdentityFramework\src\libs\OpenIdentityFramework.MySql\CSC    1   Active
Error   CS0006  Metadata file 'C:\Users\vanbukin\src\OpenIdentityFramework\src\libs\OpenIdentityFramework\obj\Debug\net8.0\ref\OpenIdentityFramework.dll' could not be found    OpenIdentityFramework.Host.Mvc  C:\Users\vanbukin\src\OpenIdentityFramework\src\hosts\OpenIdentityFramework.Host.Mvc\CSC    1   Active
Error   CS0006  Metadata file 'C:\Users\vanbukin\src\OpenIdentityFramework\src\libs\OpenIdentityFramework.InMemory\obj\Debug\net8.0\ref\OpenIdentityFramework.InMemory.dll' could not be found  OpenIdentityFramework.Host.Mvc  C:\Users\vanbukin\src\OpenIdentityFramework\src\hosts\OpenIdentityFramework.Host.Mvc\CSC    1   Active
Warning CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.   OpenIdentityFramework   C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll  1   Active
Warning CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.    OpenIdentityFramework   C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll   1   Active
Warning CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.   OpenIdentityFramework.InMemory  C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll  1   Active
Warning CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.    OpenIdentityFramework.InMemory  C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll   1   Active
Warning CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.   OpenIdentityFramework.MySql C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll  1   Active
Warning CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.    OpenIdentityFramework.MySql C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll   1   Active
Warning CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.   OpenIdentityFramework.Host.Mvc  C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CodeStyle.dll  1   Active
Warning CS9057  The analyzer assembly 'C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll' references version '4.8.0.0' of the compiler, which is newer than the currently running version '4.7.0.0'.    OpenIdentityFramework.Host.Mvc  C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\codestyle\cs\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll   1   Active
Warning RAZORSDK1007    Reference assembly C:\Users\vanbukin\src\OpenIdentityFramework\src\libs\OpenIdentityFramework\bin\Debug\net8.0\OpenIdentityFramework.dll could not be found. This is typically caused by build errors in referenced projects.   OpenIdentityFramework.Host.Mvc  C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk.Razor\targets\Microsoft.NET.Sdk.Razor.MvcApplicationPartsDiscovery.targets 54