【问题标题】:C# PDFsharp. How to skip past errors?C# PDFsharp。如何跳过过去的错误?
【发布时间】:2020-03-04 14:03:53
【问题描述】:

我正在 WinForm 程序中将 750k 页转换并合并为 1/2 百万个多页 PDF。

我在 try catch 块内有我的 PDF 写入功能,但 PDFSharp 不断用 dialogue box 抛出断言失败。
如果我遇到错误,我只想让程序记录异常详细信息并转到下一组文件,因为我不会在半夜醒来按Ignore

请问如何在C# 中阻止这种情况? 设置为发布而不是调试不起作用。

【问题讨论】:

  • PDFsharp 在内部显示消息框?老实说,如果是这样的话,我会向供应商大声抱怨。它甚至不应该引用 UI API,更不用说调用它了。 (想象一下,例如在 Web 服务器上使用该产品......)
  • 您可以提供任何代码吗?老实说,目前还不清楚您要做什么以及会发生什么。
  • 请添加产生错误的最小代码段。我知道这也将取决于输入。但这样一来,我们至少可以提出一些可以证伪或证实的理论。
  • @David 调试版本使用Debug.Assert 来显示潜在问题。 Debug.Assert 对 RELEASE 构建没有任何作用。 OP 未正确使用 PDFsharp 或使用不适当的构建。
  • 谢谢大家。使用最新的 Nuget 包解决了问题

标签: c# exception try-catch pdfsharp


【解决方案1】:

断言也不例外。

断言仅在 DEBUG 版本中显示,在 RELEASE 版本中不显示。因此,正确使用 RELEASE 构建,不会出现任何断言。不妨试试最新的 NuGet 包。

【讨论】:

  • 我在源窗口和程序集中选择了发布版本,但它仍在发生,弹出一个对话框窗口,标题为“Assertion:Failed”以及带有 Abort、Retry & Ignore 的 pdf 错误的详细信息纽扣。我目前不感兴趣的实际错误。我正在使用一个包含的 pdfsharp 项目,所以我只是在尝试更新版本的 nuget 包。
  • 如果 DLL 是使用不同的解决方案和 DEBUG 设置编译的,那么将解决方案设置为 RELEASE 不会停用 Debug.Assert。您必须使用 RELEASE 设置编译 PDFsharp 或使用 RELEASE 的 NuGet 包。我不知道你在做什么,但这就是 RELEASE 和 Debug.Assert 的工作原理。
  • 这可能是原因。我在解决方案中有 PDFSharp 源代码项目,所以我希望它能够编译,但如您所见,我不是 VS 专家。现在在无人看管的情况下工作,感谢大家的所有建议。
【解决方案2】:

迟来的澄清一下,使用 最新 Nuget 包而不是将源代码添加到项目中解决了问题。

【讨论】:

  • 这应该是评论而不是答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多