gpt4 book ai didi

.net - 如何在 .NET 中添加对 mshtml 版本 9 的引用

转载 作者:行者123 更新时间:2023-12-01 18:04:40 26 4
gpt4 key购买 nike

我想使用 mshtml.dll 9.0 版的一些新功能,例如 IHTMLCSSRule。

以下文件夹中的互操作版本是版本 7.0.3300.1:

C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll

以下文件夹中的COM版本是版本9.0.8112.16441:

C:\Windows\System32\mshtml.dll

根据我从网络上可以确定的信息,我应该这样做来创建 .NET 互操作版本 9:

d:\zTemp>tlbimp mshtml.tlb /out:Microsoft.mshtml.dll /namespace:mshtml/asmversi on:9.0

这似乎有效,但生成了以下警告:

TlbImp : warning TI3001 : Primary interop assembly 'Microsoft.mshtml,Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is already registere d for type library 'C:\Windows\system32\mshtml.tlb'. TlbImp

: warning TI3016 : The type library importer could not convert thesignature for the member 'mshtml._userBITMAP.pBuffer'. TlbImp :

warning TI3016 : The type library importer could not convert thesignature for the member 'mshtml._FLAGGED_BYTE_BLOB.abData'. TlbImp :

warning TI3015 : At least one of the arguments for'mshtml.ICanvasPixel ArrayData.GetBufferPointer' cannot be marshaledby the runtime marshaler. Such arguments will therefore be passed asa pointer and may require unsafe code to m anipulate. TlbImp : Typelibrary imported to d:\zTemp\Microsoft.mshtml.dll

  1. 可以安全地忽略这些警告吗?
  2. Microsoft 网站是否没有该 dll 的预编译版本可供下载?
  3. 我可以将此 dll 与我的应用程序一起分发吗?
  4. 将 dll 的引用添加到 .NET 3.5 项目时,我收到以下警告:

'Microsoft.mshtml.dll', or one of its dependencies requires a laterversion of the .Net Framework than the one specified in the project...

既然这是一个警告,让我以任何方式添加引用,我仍然可以在 .NET 3.5 中使用 .dll 的某些功能吗?

谢谢

最佳答案

这些都是 COM 版本控制的危险,又名 DLL hell 。您在 GAC 中安装的 PIA 是最小公分母,它使您的代码可以与任何版本的 IE 6 及更高版本一起使用。你的方法在其他方面是合理的。警告是真实的,您不能使用来自脚本语言或依赖 COM 自动化的任何其他客户端的标记成员。只要不使用它们就可以避免麻烦,这并不困难。

添加引用时出现错误,因为您使用了错误版本的 Tlbimp.exe。从错误消息来看,可能是.NET 4版本。 3.5兼容版本位于c:\program files\microsoft sdks\windows\v6.0a\bin。否则,您将在使用 VS2008 命令提示符时得到该提示符。通过在命令提示符下键入 where tlbimp.exe 进行验证。

您可能会加载 PIA 而不是自定义互操作程序集。不确定,您可以从 Fuslogvw.exe 看出,配置为记录所有绑定(bind)。你的/asmversion 应该避免它。最好创建一个完全伪造的版本号,这样它就永远无法匹配 PIA 版本,例如 1.0.0.0

当然,如果用户的计算机没有安装 IE9,您的程序将无法运行。

关于.net - 如何在 .NET 中添加对 mshtml 版本 9 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9533824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com