Winform下的HTMLEditor引用Microsoft.mshtml的注意事项

    最近做了一个winform下的htmleditor,引用了一个Microsoft.mshtml,在本地运行没有问题(有装VS),但发到测试(没装VS,只有运行库),结果界面不出来了,搞了好久,在网上了些文章,现在整理一下:

 

 以个人本机为例,总结了一下,mshtml的问题处理方式如下:

      1. C:\WINDOWS\system32\mshtml.dll 为win32下的调用,net无法使用

      2. 查看C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll 文件,如果有此文件,则可以拷贝此文件,并让开发的程序引用该文件,在客户机上安装时,该文件要一起打包安装。如果没有该文件,可以尝试在 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下运行RegAsm.exe,注册1.中描述的 mshtml.dll组件,注册后,Primary Interop Assemblies目录中便出现了该dll。

      3. 在安装了net sdk的环境中,Visual Studio 2005和Visual Studio 2008都安装了sdk,可以运行gacutil.exe,将Primary Interop Assemblies目录下的Microsoft.mshtml.dll注册到全局程序集缓存中,因此在运行程序时,程序便可不用再带着 Microsoft.mshtml.dll一起移动了。

      另:a>一般在开发电脑中会有sdk,因此可以将Microsoft.mshtml.dll注册到全局程序集缓存中,但是在客户机上,通常只装了.Net Framework,还是让程序带着Microsoft.mshtml.dll一起运行更方便。

            b> 另外,有时我们也可以在C:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11 目录或  C:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office12目录下发现该组件。不要使用这些dll, net需要使用有强名称的dll,这些不适用。

    

建议

建议把mshtml文件放在安装包中带走,并设置注册,就不会出现问题。

  在安装项目中-->"添加“-->“程序集”,找到路径为“

C:\Program Files\Microsoft.NET\Primary Interop Assemblies\"的
Microsoft.mshtml,然后属性"Register"-->"vsdraCOMRelativePath",OK.发布就行了

 

 

参考文章:

mshtml在net中的使用问题

 

 

http://www.cnblogs.com/oooo/archive/2009/05/21/1486509.html

 

mshtml组件引用的问题

 

 

http://www.cnblogs.com/catcn/archive/2009/06/11/1501266.html
 
Winform部署mshtml程序集出错的一个解决方案

http://www.cnblogs.com/downmoon/archive/2010/03/08/1680834.html

 

 

 

 

 

posted @ 2011-08-31 16:25  Aleax  阅读(3993)  评论(0编辑  收藏  举报