致命错误。内部 CLR 错误。 (0x80131506) 使用 `dotnet build` 构建项目时

问题描述 投票:0回答:2

从 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
    并得到错误
  • 如果我启动一个单独的命令提示符窗口 (cmd.exe) 并键入
    dotnet build
    ,构建将成功且不会出现错误,如果我在执行此操作后切换回 PowerShell 窗口并重新发出
    dotnet build
    命令,则它会成功没有任何错误
  • Visual Studio 构建按预期工作(不会给出错误)
  • 从“Developer PowerShell for VS 2022”窗口发出
    dotnet build
    时,我遇到了同样的错误
  • 我安装了(当前)最新的 .NET 版本(7.0.401,提交 eb26aacfec),并且此问题在某些版本之前开始出现。 PowerShell版本是7.3.7 Core
  • 我在两台不同的机器上遇到同样的问题

到目前为止,我已经克服了上述问题,通过启动一个新的 cmd.exe 窗口,然后切换回 PowerShell,但它变得有点乏味。

有什么想法吗?

c# powershell .net-core clr roslyn
2个回答
3
投票

这可能是 Microsoft 方面的错误,您应该向 Microsoft 报告。我首先在here打开一个包含重现步骤的问题。如果需要的话,它将被路由到正确的团队(最终可能是 dotnet/runtime)。


0
投票

对我来说,这是通过将以下内容添加到

$PROFILE
来解决的:

rm ENV:DOTNET_TieredCompilation
rm ENV:COMPlus_TieredCompilation

我不知道是谁或什么添加了这些环境变量并将它们设置为

0
,但是完全删除它们,或者将它们重置为默认值(
1
)对我来说很有效。

© www.soinside.com 2019 - 2024. All rights reserved.