显示列表

用C#写的WinForms程序,在自已机器上能正常运行,在其他机器上不能运行,提示“遇到问题需要关闭。我们对此引起的不便表示抱歉。”

网上搜索在其他机器上不能运行原因主要有两个:
1.没有装.Net Framework
2.缺少关联的程序集

如果没有装.Net Framework错误提示不会这样。原因应该是缺少关联的程序集。

找到错误的地方,程序引用了C:\Windows\System32\mshtml.tlb,当使用 mshtml 空间中的对象时就提示“遇到问题需要关闭。我们对此引起的不便表示抱歉。”

解决的方法
通过类型库导入程序(Tlbimp.exe)将 COM 类型库中的类型定义转换为公共语言运行库程序集中。
在 Visual Studio 命令提示中执行
tlbimp C:\Windows\System32\mshtml.tlb /out:C:\mshtml.dll
转换需要一定时间,生成的 mshtml.dll 有8M。
在WinForms程序中添加引用这个 mshtml.dll,不要引用 C:\Windows\System32\mshtml.tlb
最后把这个mshtml.dll和exe文件复制过去就可以用了。


标签:错误 
返回摘要 | 分类(C#/CSharp) | 访问(776) | 编辑