如何使用 VS2019 解决此 MSB6006 csc.exe 错误 (-2146232797)?

2024-03-22

我刚刚将 VS2019 社区版更新到版本 16.7.2。我的项目开始无法构建(可能是链接步骤?)并出现此错误(之前构建得很好,我认为是在 v16.6.something 上):

> Severity  Code    Description Project File    Line    Suppression State
> Error MSB6006 "csc.exe" exited with code
> -2146232797.  MyProject.Server    C:\Program Files\dotnet\sdk\3.1.401\Sdks\Microsoft.NET.Sdk.Razor\build\netstandard2.0\Microsoft.NET.Sdk.Razor.Component.targets 179

我真的不知道如何弄清楚发生了什么事。接下来我可以看什么?我应该在其他地方问这个问题吗?

我在 Windows 事件日志中发现了这一点。这似乎是一个调用堆栈:

> Application: csc.exe Framework Version: v4.0.30319 Description: The
> application requested process termination through
> System.Environment.FailFast(string message). Message:
> System.NullReferenceException: Object reference not set to an instance
> of an object. at
> Microsoft.CodeAnalysis.CodeGen.ILBuilder.BasicBlock.ShortenBranches(Int32&
> delta) at
> Microsoft.CodeAnalysis.CodeGen.ILBuilder.ComputeOffsetsAndAdjustBranches()
> at Microsoft.CodeAnalysis.CodeGen.ILBuilder.RealizeBlocks() at
> Microsoft.CodeAnalysis.CodeGen.ILBuilder.Realize() at
> Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.GenerateImpl() at
> Microsoft.CodeAnalysis.CSharp.MethodCompiler.GenerateMethodBody(PEModuleBuilder
> moduleBuilder, MethodSymbol method, Int32 methodOrdinal,
> BoundStatement block, ImmutableArray`1 lambdaDebugInfo,
> ImmutableArray`1 closureDebugInfo, StateMachineTypeSymbol
> stateMachineTypeOpt, VariableSlotAllocator variableSlotAllocatorOpt,
> DiagnosticBag diagnostics, DebugDocumentProvider
> debugDocumentProvider, ImportChain importChainOpt, Boolean
> emittingPdb, Boolean emitTestCoverageData, ImmutableArray`1
> dynamicAnalysisSpans, AsyncForwardEntryPoint entryPointOpt) at
> Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol
> methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers&
> processedInitializers, SynthesizedSubmissionFields
> previousSubmissionFields, TypeCompilationState compilationState) at
> Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol
> containingType) at
> Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass22_0.<CompileNamedTypeAsync>b__0()
> Stack: at System.Environment.FailFast(System.String, System.Exception)
> at Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception)
> at
> Microsoft.CodeAnalysis.FatalError.ReportUnlessCanceled(System.Exception)
> at
> Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.<CompileNamedTypeAsync>b__0()
> at
> Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock.ShortenBranches(Int32
> ByRef) at
> Microsoft.CodeAnalysis.CodeGen.ILBuilder.ComputeOffsetsAndAdjustBranches()
> at Microsoft.CodeAnalysis.CodeGen.ILBuilder.RealizeBlocks() at
> Microsoft.CodeAnalysis.CodeGen.ILBuilder.Realize() at
> Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator.GenerateImpl() at
> Microsoft.CodeAnalysis.CSharp.MethodCompiler.GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,
> Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Int32,
> Microsoft.CodeAnalysis.CSharp.BoundStatement,
> System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo>,
> System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo>,
> Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,
> Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,
> Microsoft.CodeAnalysis.DiagnosticBag,
> Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,
> Microsoft.CodeAnalysis.CSharp.ImportChain, Boolean, Boolean,
> System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CodeGen.SourceSpan>,
> AsyncForwardEntryPoint) at
> Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,
> Int32, ProcessedFieldInitializers ByRef,
> Microsoft.CodeAnalysis.CSharp.SynthesizedSubmissionFields,
> Microsoft.CodeAnalysis.CSharp.TypeCompilationState) at
> Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol)
> at
> Microsoft.CodeAnalysis.CSharp.MethodCompiler+<>c__DisplayClass22_0.<CompileNamedTypeAsync>b__0()
> at
> Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass5_0.<WithCurrentUICulture>b__0()
> at System.Threading.Tasks.Task.Execute() at
> System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,
> System.Threading.ContextCallback, System.Object, Boolean) at
> System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
> System.Threading.ContextCallback, System.Object, Boolean) at
> System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task
> ByRef) at System.Threading.Tasks.Task.ExecuteEntry(Boolean) at
> System.Threading.ThreadPoolWorkQueue.Dispatch()

我的问题是如何调查。这就是我所做的,希望对其他人有帮助。

  1. 开始从我的项目中删除代码,一次删除一个文件,直到找到有问题的文件。
  2. 把那个文件放回去,开始一次删除一个函数体,直到找到有问题的函数体。
  3. 注释掉部分有问题的函数,直到找到有问题的代码。
  4. 创建一个新的控制台应用程序并粘贴有问题的代码。
  5. 按照此处所述向 Microsoft 报告问题:https://learn.microsoft.com/en-us/visualstudio/ide/how-to-report-a-problem-with-visual-studio?view=vs-2019 https://learn.microsoft.com/en-us/visualstudio/ide/how-to-report-a-problem-with-visual-studio?view=vs-2019

就其价值而言,这是我报告的问题:https://developercommunity.visualstudio.com/content/problem/1162150/vs2019-cscexe-bug-with-switch-statement.html https://developercommunity.visualstudio.com/content/problem/1162150/vs2019-cscexe-bug-with-switch-statement.html

(如果你在 Stack Overflow 上搜索类似的问题,你有可能会遇到和我一样的问题,但似乎这个错误通常是“你编写了我们甚至无法编译的代码。”...希望上述步骤可以帮助您。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 VS2019 解决此 MSB6006 csc.exe 错误 (-2146232797)? 的相关文章

随机推荐