如何在.NET中添加对mshtml版本9的引用
我想使用mshtml.dll 9.0版的一些新功能,如IHTMLCSSRule 以下文件夹中的互操作版本为7.0.3300.1版: C:\Program Files\Microsoft.NET\Primary Interop Assembly\Microsoft.mshtml.dll 以下文件夹中的COM版本为9.0.8112.16441版本: C:\Windows\System32\mshtml.dll 根据我从web上了解到的情况,我应该这样做来创建.NET interop版本9: d:\zTemp>tlbimp mshtml.tlb/out:Microsoft.mshtml.dll/命名空间:mshtml /ASMversion:9.0 这似乎有效,但产生了以下警告: TlbImp:警告TI3001:主互操作程序集'Microsoft.mshtml, 版本=7。 0.3300.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a已为类型库“C:\Windows\system32\mshtml.tlb”注册。TlbImp :警告TI3016:类型库导入程序无法转换 成员“mshtml.\u userBITMAP.pBuffer”的签名。TlbImp: 警告TI3016:类型库导入程序无法转换 成员“mshtml.\u标记的\u字节\u BLOB.abData”的签名。TlbImp: 警告TI3015:的至少一个参数 无法封送'mshtml.ICanvasPixel ArrayData.GetBufferPointer' 由运行时封送处理程序执行。因此,这些论据将作为 指针,可能需要不安全的代码来操作。TlbImp:类型 已导入到d:\zTemp\Microsoft.mshtml.dll的库如何在.NET中添加对mshtml版本9的引用,.net,internet-explorer-9,webbrowser-control,mshtml,.net,Internet Explorer 9,Webbrowser Control,Mshtml,我想使用mshtml.dll 9.0版的一些新功能,如IHTMLCSSRule 以下文件夹中的互操作版本为7.0.3300.1版: C:\Program Files\Microsoft.NET\Primary Interop Assembly\Microsoft.mshtml.dll 以下文件夹中的COM版本为9.0.8112.16441版本: C:\Windows\System32\mshtml.dll 根据我从web上了解到的情况,我应该这样做来创建.NET interop版本9: d:\z
谢谢这些都是COM版本控制的危害,也就是DLL地狱。您在GAC中安装的PIA是最低的公分母,它使您的代码能够与任何版本的IE6及更高版本协同工作。你的方法是正确的。警告是真实的,您不能使用来自脚本语言或任何其他依赖COM自动化的客户端的标记成员。你只要不使用它们就可以避免麻烦,这并不困难 添加引用时出现错误,因为使用了错误版本的Tlbimp.exe。从错误消息判断,可能是.NET4版本。3.5兼容版本位于c:\program files\microsoft SDK\windows\v6.0a\bin中。否则,您将在使用VS2008命令提示符时得到一个。在命令提示下键入
where tlbimp.exe
进行验证
可能会加载PIA而不是自定义互操作程序集。不确定,您可以通过配置为记录所有绑定的Fuslogvw.exe来判断。你的/ASM版本应该避免它。最好创建一个完全伪造的版本号,这样它就永远不会匹配PIA版本,比如1.0.0.0
当然,如果没有安装IE9,您的程序将无法在用户的机器上运行