如何解决如何使用VS2019解决此MSB6006 csc.exe错误-2146232797?
我刚刚将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,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,> 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,Boolean) at
> System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task
> ByRef) at System.Threading.Tasks.Task.ExecuteEntry(Boolean) at
> System.Threading.ThreadPoolWorkQueue.Dispatch()
解决方法
堆栈跟踪显示System.NullReferenceException: Object reference not set to an instance of an object.
您是否尝试在VS中本地运行应用程序并对其进行调试?
,我的问题是有关如何进行调查的。这就是我所做的,希望对其他人有帮助。
- 开始从我的项目中删除代码,一次删除一个文件,直到找到有问题的文件。
- 放回该文件,开始一次删除一个功能主体,直到我发现有问题的那个主体。
- 注释掉有问题的功能的各个部分,直到发现有问题的代码为止。
- 创建一个新的控制台应用程序并粘贴有问题的代码。
- 按照以下说明向Microsoft报告问题:https://docs.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
(如果您要在Stack Overflow中搜索类似的问题,则可能会遇到与我所做的相同的事情,但似乎该错误通常是“您编写了甚至无法编译的代码。”。 ..希望以上步骤能对您有所帮助。)
,Windows版本更新后,我在构建服务器上遇到了这个问题。
c:\ program files(x86)\ microsoft visual studio \ 2019 \ buildtools \ msbuild \ current \ bin \ Roslyn \ Microsoft.CSharp.Core.targets(70,5):错误MSB6006:“ csc.exe”已退出代码为-2146232576。
最终,我得到了 Microsoft.CSharp.Core.targets 的行 70 的输出,该行基本上是命令行csc.exe及其 all 命令行参数,并从命令行运行。
那是一个对话框弹出并说我需要.net Framework 4.7.2的时候!!!
以下是调试模糊的csc.exe错误的方法:
-
使用/ verbosity:diag 运行msbuild并将输出发送到文件
msbuild my.sln / verbosity:diag> output.txt
-
通过在失败的目标上搜索为零的字符串“ FAILED。”来找到控制台输出中的第一个错误,并标识目标名称和任务ID(示例中TaskId为 431 )
-
在诊断跟踪中向上扫描,从上面标识的目标任务ID中查找输出,该目标的所有输出均标记有该目标的任务ID ,看到异常之处吗?
-
如果您的构建可以在其他计算机上运行,请在两者上运行诊断跟踪(请参阅第1步),然后将它们与WinMerge之类的工具进行比较
-
打开目标文件,查看错误所在的行,该行号显示在错误旁边的括号中,在下面的示例中是第70行,
Microsoft.CSharp.Core.targets( 70 ,5):错误MSB6006:“ csc.exe”
-
然后打开目标并对其进行检查,它试图做什么?它会为您提供有关可能出问题的任何线索吗?您可以复制它的尝试吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。