System.Windows.Forms.dll中的System.Runtime.InteropServices.COMException

时间:2012-06-14 20:49:55

标签: dll interop runtime runtime-error comexception

我使用名为wnvhtmlconvert的dll组件从html生成pdf。它上周正在工作,然后现在它开始只有在我正在进行的时候才能获得COMException。

输出错误:

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

其他信息:未知错误。

在另一台机器上,它通常在重新布局和发布时起作用。

我已经尝试注册了wnvhtmlconvert.dll但是它不可能成为可能,因为它不能被注册。

有什么建议吗?

TY

2 个答案:

答案 0 :(得分:1)

您为处理本机代码调试设置了错误的调试选项之一。 您可以尝试切换其中一些选项来停止行为,也可以通过执行以下操作将调试选项重置为安装默认值(基于VS 2015-自行承担风险!):

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

Voila-仅将调试器选项保留为默认设置! 这对我有用,而且我再也看不到本机代码周围的异常行为。

祝你好运!

答案 1 :(得分:0)

您可能在非UI线程中执行某些操作,或者忘记固定引用。