现在的位置: 首页 > 综合 > 正文

mshtml组件引用的问题

2012年08月14日 ⁄ 综合 ⁄ 共 1012字 ⁄ 字号 评论关闭

在一个系统里边应用了一个htmleditor,winform的程序,需要引用Microsoft.mshtml.dll。
所以就引用了.net下的这个文件。添加引用>>.net>>选择Microsoft.mshtml。

开发过程一切完好,没有遇到任何问题。但是部署到另外的一台机器的时候,就出现了,找不到引用的Microsoft.mshtml.dll的问题。看程序目录下也是没有mshtml.dll类似的文件。

看来是这个Microsoft.mshtml.dll出问题了,到网上搜索了一下:
得到以下文章:Microsoft.mshtml到底是什么? (http://www.cnblogs.com/waxdoll/archive/2005/04/08/134196.html

仔细阅读:原来在COM组件引用里边还有一个mshtml的引用东西。一共有两个mshtml。(以下原文引用):
.NET系统附带了一个mshtml.dll的Interop封装,理论上来说自然无法脱离COM独立存在,但是既然是Interop包装过的,那么在.NET环境中的使用肯定就要比直接调用COM组件有优势。

开始还想着到C盘里边把Microsoft.mshtml.dll拷贝到程序目录了事算了,搜素了一下,发现问题严重了,这是个2.98 MB的大家伙。可是不引用这个可以吗?
好在搜索这个的时候出现了另外两个好东西:WindowsLive.Writer.Interop.Mshtml.dll(165k)和WindowsLive.Writer.Mshtml.dll(113k)。

所以在程序里边删除了Microsoft.mshtml.dll的引用,换上了113k的dll的引用,发现不行。在换上WindowsLive.Writer.Interop.Mshtml.dll(165k),终于可以成功了。嗯,这个小块头的mshtml.dll可以替换掉3M的的那个Microsoft.mshtml.dll,不错,不错。

然后,打开对象浏览器,把两个dll文件对比了一下,不出所料:小的dll是也是针对mshtml COM的封装。WindowsLive.Writer.Interop.Mshtml.dll这个是在Live Writer的里边的,LiveWriter里边也有一个htmleditor,原来上应该和我现在用的htmleditor差不多。

在自己blog上发过,又转这边来了。

抱歉!评论已关闭.