Winform下的HTMLEditor引用Microsoft.mshtml的注意事项
最近做了一个winform下的htmleditor,引用了一个Microsoft.mshtml,在本地运行没有问题(有装VS),但发到测试(没装VS,只有运行库),结果界面不出来了,搞了好久,在网上了些文章,现在整理一下:
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,这些不适用。
参考文章:
http://www.cnblogs.com/downmoon/archive/2010/03/08/1680834.html