【问题标题】:Accessing inner exceptions when building using csc.exe使用 csc.exe 构建时访问内部异常
【发布时间】:2020-02-21 08:53:55
【问题描述】:

我正在使用csc.exe 编译一个项目,其中/analyzer: 标志指向ErrorProne.Net.CoreAnalyzers.dllErrorProne.Net.Core.dll 的路径,它们是从我的库here 的克隆中构建的。

但是,我看到了几条类似这样的错误消息:

"警告 CS8032: 分析器实例 ErrorProne.NET.AsyncAnalyzers.ConcurrentCollectionAnalyzer 不能 创建自 C:\Repos\RoslynExample\RoslynExample\ErrorProne.Net.CoreAnalyzers.dll : 调用的目标抛出了异常。”

"警告 CS8032: 分析器实例 ErrorProne.NET.AsyncAnalyzers.AddConfigureAwaitAnalyzer 不能 创建自 C:\Repos\RoslynExample\RoslynExample\ErrorProne.Net.CoreAnalyzers.dll : 调用的目标抛出了异常。”

等等。

我想获得更多调试信息,以便确切知道这些错误何时何地抛出,以及它们的内部异常。到目前为止,这些错误消息本身是没有用的。

重要的是我能够将堆栈跟踪(尤其是内部异常)打印到控制台,或将其写入文件

如何获取堆栈跟踪的副本?

更新:

我通过以下方法找出了这些错误的原因:1) 创建一个控制台应用程序,该应用程序运行从我的 Error.Net 源代码的克隆构建的分析器,2) 禁用 Just My Code,以及 3) 中断所有异常。虽然很高兴最终找出问题所在,但它仍然没有回答我最初的问题:我怎样才能通过运行csc.exe 来访问内部异常(以便稍后显示它们)?

【问题讨论】:

  • 您是否尝试将调试器附加到 csc?
  • 也许您可以在分析器代码中添加 AppDomain.FirstChanceException 事件并调查异常(记录或显示它们)?但请注意,实现事件处理程序可能会导致堆栈溢出,因此请查看本网站上的实现示例。

标签: c# .net roslyn csc


【解决方案1】:

您是否尝试打开跟踪输出?

     csc -r:System.dll -d:TRACE -d:DEBUG=FALSE MyApplication.cs

也许这篇文章对你有用How to: Compile Conditionally with Trace and Debug

【讨论】:

  • 感谢您的回复。我打开了跟踪,不幸的是仍然无法访问内部异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
相关资源
最近更新 更多