从 PowerShell 命令行(
dotnet build
或 dotnet test
)在任何 C# 项目中构建或运行测试时,我收到“致命错误。内部 CLR 错误”,并显示以下输出:
MSBuild version 17.7.3+8ec440e68 for .NET
Determining projects to restore...
All projects are up-to-date for restore.
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : Fatal error. Internal CLR error. (0x80131506) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.NetCore.Analyzers.InteropServices.PlatformCompatibilityAnalyzer+<>c__DisplayClass34_0.<AnalyzeOperationBlock>b__1(Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor+<>c__54`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<ExecuteBlockActions>b__54_1(System.ValueTuple`2<System.Action`1<Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext>,Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext>) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteAndCatchIfThrows_NoLock[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext, Microsoft.CodeAnalysis, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer, System.Action`1<System.ValueTuple`2<System.__Canon,Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext>>, System.ValueTuple`2<System.__Canon,Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext>, System.Nullable`1<Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo>, System.Threading.CancellationToken) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteAndCatchIfThrows[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext, Microsoft.CodeAnalysis, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer, System.Action`1<System.ValueTuple`2<System.__Canon,Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext>>, System.ValueTuple`2<System.__Canon,Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext>, System.Nullable`1<Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo>, System.Threading.CancellationToken) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteBlockActions[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.CodeAnalysis.PooledObjects.PooledHashSet`1<System.__Canon>, Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.ISymbol, Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer, Microsoft.CodeAnalysis.SemanticModel, System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.IOperation>, System.Action`1<Microsoft.CodeAnalysis.Diagnostic>, System.Func`3<Microsoft.CodeAnalysis.Diagnostic,System.Threading.CancellationToken,Boolean>, System.Nullable`1<Microsoft.CodeAnalysis.Text.TextSpan>, Boolean, System.Threading.CancellationToken) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteBlockActionsCore[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Generic.IEnumerable`1<System.__Canon>, System.Collections.Generic.IEnumerable`1<System.__Canon>, System.Collections.Generic.IEnumerable`1<System.__Canon>, Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer, Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis.ISymbol, System.Collections.Immutable.ImmutableArray`1<System.__Canon>, System.Func`2<System.Collections.Immutable.ImmutableArray`1<System.__Canon>,System.Collections.Generic.IEnumerable`1<System.__Canon>>, Microsoft.CodeAnalysis.SemanticModel, System.Func`2<Microsoft.CodeAnalysis.SyntaxNode,Int32>, System.Nullable`1<Microsoft.CodeAnalysis.Text.TextSpan>, Boolean, System.Threading.CancellationToken) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[[Microsoft.CodeAnalysis.CSharp.SyntaxKind, Microsoft.CodeAnalysis.CSharp, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].<ExecuteDeclaringReferenceActions>g__executeOperationsBlockActions|6(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.IOperation>, System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.IOperation>, System.Collections.Generic.IEnumerable`1<ExecutableCodeBlockAnalyzerActions<Microsoft.CodeAnalysis.CSharp.SyntaxKind>>) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[[Microsoft.CodeAnalysis.CSharp.SyntaxKind, Microsoft.CodeAnalysis.CSharp, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2() [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[[Microsoft.CodeAnalysis.CSharp.SyntaxKind, Microsoft.CodeAnalysis.CSharp, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].ExecuteDeclaringReferenceActions(Microsoft.CodeAnalysis.SyntaxReference, Microsoft.CodeAnalysis.Diagnostics.SymbolDeclaredCompilationEvent, Microsoft.CodeAnalysis.Diagnostics.AnalysisScope, GroupedAnalyzerActions<Microsoft.CodeAnalysis.CSharp.SyntaxKind>, GroupedAnalyzerActions<Microsoft.CodeAnalysis.CSharp.SyntaxKind>, Boolean, Boolean, Boolean, Boolean, Boolean, System.Threading.CancellationToken) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[[Microsoft.CodeAnalysis.CSharp.SyntaxKind, Microsoft.CodeAnalysis.CSharp, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].ExecuteDeclaringReferenceActions(Microsoft.CodeAnalysis.Diagnostics.SymbolDeclaredCompilationEvent, Microsoft.CodeAnalysis.Diagnostics.AnalysisScope, Boolean, IGroupedAnalyzerActions, System.Threading.CancellationToken) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+<TryProcessSymbolDeclaredAsync>d__137.MoveNext() [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+<TryProcessSymbolDeclaredAsync>d__137, Microsoft.CodeAnalysis, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<TryProcessSymbolDeclaredAsync>d__137 ByRef) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver.TryProcessSymbolDeclaredAsync(Microsoft.CodeAnalysis.Diagnostics.SymbolDeclaredCompilationEvent, Microsoft.CodeAnalysis.Diagnostics.AnalysisScope, System.Threading.CancellationToken) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+<TryProcessEventCoreAsync>d__136.MoveNext() [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+<TryProcessEventCoreAsync>d__136, Microsoft.CodeAnalysis, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<TryProcessEventCoreAsync>d__136 ByRef) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver.TryProcessEventCoreAsync(Microsoft.CodeAnalysis.Diagnostics.CompilationEvent, Microsoft.CodeAnalysis.Diagnostics.AnalysisScope, System.Threading.CancellationToken) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+<ProcessEventAsync>d__134.MoveNext() [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+<ProcessEventAsync>d__134, Microsoft.CodeAnalysis, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<ProcessEventAsync>d__134 ByRef) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver.ProcessEventAsync(Microsoft.CodeAnalysis.Diagnostics.CompilationEvent, Microsoft.CodeAnalysis.Diagnostics.AnalysisScope, System.Threading.CancellationToken) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+<ProcessCompilationEventsCoreAsync>d__133.MoveNext() [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.__Canon, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+<ProcessCompilationEventsCoreAsync>d__133, Microsoft.CodeAnalysis, Version=4.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext(System.Threading.Thread) [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at System.Threading.ThreadPoolWorkQueue.Dispatch() [C:\<redacted>\test-build.csproj]
C:\Program Files\dotnet\sdk\7.0.401\Roslyn\Microsoft.CSharp.Core.targets(80,5): error : at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart() [C:\<redacted>\test-build.csproj]
dotnet new console
,然后执行dotnet build
并得到错误dotnet build
,构建将成功且不会出现错误,如果我在执行此操作后切换回 PowerShell 窗口并重新发出 dotnet build
命令,则它会成功没有任何错误dotnet build
时,我遇到了同样的错误到目前为止,我已经克服了上述问题,通过启动一个新的 cmd.exe 窗口,然后切换回 PowerShell,但它变得有点乏味。
有什么想法吗?
这可能是 Microsoft 方面的错误,您应该向 Microsoft 报告。我首先在here打开一个包含重现步骤的问题。如果需要的话,它将被路由到正确的团队(最终可能是 dotnet/runtime)。
对我来说,这是通过将以下内容添加到
$PROFILE
来解决的:
rm ENV:DOTNET_TieredCompilation
rm ENV:COMPlus_TieredCompilation
我不知道是谁或什么添加了这些环境变量并将它们设置为
0
,但是完全删除它们,或者将它们重置为默认值(1
)对我来说很有效。