【问题标题】:I'm getting error that i'm missing a reference but which one?我收到错误,我错过了一个参考,但哪一个?
【发布时间】:2016-01-25 18:37:55
【问题描述】:

我添加到表单顶部

using mshtml;

IHTMLDocument2 doc = (IHTMLDocument2)webbrowser1.Document.DomDocument;
            IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createControlRange();

错误开启:

(IHTMLControlRange)((HTMLBody)doc.body).createControlRange();

错误 3 无法找到编译动态表达式所需的一种或多种类型。您是否缺少参考资料?

【问题讨论】:

  • IDE 中有没有下划线的类型?如果你用谷歌搜索类型名称,你应该会得到一个指向 MSDN 的链接,它会告诉你对象在哪个程序集中。
  • 解决方案是添加 Microsoft.CSharp 作为参考,一旦添加了这个 dll 就可以了。不知道为什么我需要它。我错过了这个错误,我也没有定义或导入“Microsoft.CSharp.RuntimeBinder.Binder”,一旦添加了 csharp dll,现在一切都很好。

标签: c# .net winforms


【解决方案1】:

请记住,仅添加语句Using mshtml;(考虑到所有使用的类型都属于mshtml dll)不会引入引用的dll。您还需要将 dll 的引用添加到您的项目 Reference 文件夹中。

确保你已经这样做了。

【讨论】:

  • 我是从这个目录添加的 C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll 也许是错误的 dll?添加后我使用了mshtml;但仍然出现此错误。
  • 是的,右键单击您的项目引用文件夹 -> 添加引用 -> 从 .NET 选项卡添加所需的 dll。
  • @FalconsMyman,它是 COM dll 吗?你是怎么得到那个dll的?
  • @Rahul mshtml 是 .net 框架的一部分。我只是尝试添加它。它工作正常,代码也可以编译。想知道为什么它对 op 不起作用。
  • @FalconsMyman,查看此帖子一次stackoverflow.com/questions/2068159/…
【解决方案2】:

您需要添加对Microsoft.mshtml 程序集的引用。请按照以下步骤操作:

  • 项目 → 添加参考
  • 转到左侧的“扩展”选项卡(在“程序集”下)
  • 确保选中Microsoft.mshtml 旁边的复选框。
  • 按确定。

现在一切正常。

您可能会在列出的程序集中看到多个Microsoft.mshtml 条目。在这种情况下,选择其中任何一个(最好是最新版本)。

【讨论】:

  • 现在再次尝试同样的错误。在我从 C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll 添加 dll 文件并得到错误之前,我按照你说的那样尝试了,我看到一个 Microsoft.mshtml.dll 添加了它并还是一样的错误。
  • 您尝试过我上面的步骤了吗?不要直接添加dll。使用答案中的引用加法器(..kind of)对话框。
  • Farhan 我也试过你的方法。我看到有一个 Microsoft.mshtml 添加了它,但仍然是同样的错误。
  • @FalconsMyman 我猜你忘记了复选框。确保已检查。仅突出显示并按 ok 是不行的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-20
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
相关资源
最近更新 更多