1

我正在使用一个名为 wnvhtmlconvert 的 dll 组件从 html 生成 pdf。上周它正在工作,然后现在它只有在我调试时才开始收到 COMException。

输出错误如下:

System.Windows.Forms.dll 中发生“System.Runtime.InteropServices.COMException”类型的异常,并且在托管/本机边界之前未处理

附加信息:未知错误。

在另一台机器上,它在调试和发布时正常工作。

我已经尝试注册 wnvhtmlconvert.dll 但这不可能,因为它不能注册。

有什么建议吗?

4

3 回答 3

2

您的其中一个调试选项设置不正确,无法处理本机代码调试。您可以尝试切换其中一些选项以停止该行为,或者您可以通过执行以下操作将调试选项重置为安装默认值(基于 VS 2015 - 自行承担风险!):

  1. 确保没有 Visual Studio 实例正在运行并启动 Visual Studio
  2. 导航菜单选项工具>导入和导出设置...
  3. 从向导中,选择 RESET ALL SETTINGS 并单击 NEXT(别担心,我们将保存您的设置并重新导入所有设置,除了调试设置)
  4. 选择选项是,保存当前设置并单击下一步(您的所有原始设置现在都已备份)
  5. 应该选择您的默认环境,但如果您看到其他情况,请选择正确的环境,即“Visual C#”并单击“完成”。现在将保存设置
  6. 使用 Visual Studio,导航菜单选项 FILE>OPEN>FILE...并浏览到保存设置的文件夹。
  7. 将扩展名“.XML”添加到您的设置文件中,然后在 VS 中打开它
  8. 导航菜单选项 EDIT>ADVANCED>FORMAT DOCUMENT 使其更易于阅读
  9. 在您的文件中找到 XML 条目/文本 Category name="Debugger
  10. 注释掉整个部分(将包含大约 70 行PropertyValue
  11. 保存您的文件(现在您可以重新导入所有原始设置,而无需使用已失效的调试器设置)
  12. 导航菜单选项工具>导入和导出设置...
  13. 从向导中,选择 IMPORT...SETTINGS 并单击 NEXT
  14. 选择否,仅导入设置选项,然后单击下一步
  15. 选择 MY SETTINGS>CurrentSettings.vssettings 列表项并单击 BROWSE
  16. 将浏览过滤器(浏览窗口的右下角)从 SETTINGS FILES 更改为 ALL FILES 并浏览到带有 .XML 扩展名的设置文件并选择/打开它
  17. 单击下一步,您的选项将被导入。您可能会看到一两个错误,但这对我来说不是问题。

瞧——只是你的调试器选项被保留在默认设置!这对我有用,我不再看到本机代码周围的奇怪行为。

祝你好运!

于 2018-11-29T16:14:52.240 回答
0

您可能在非 UI 线程中做某事,或者忘记固定引用。

于 2012-07-13T21:21:56.403 回答
0

转到 Visual Studio 中的工具/选项/调试/常规。当异常跨越 AppDomain 或托管/本机边界时取消选中中断...

于 2021-08-19T01:11:23.027 回答