【问题标题】:Visual Studio: Cannot find the interop type that matches the embedded type 'DOMDocument'. Are you missing an assembly reference?Visual Studio:找不到与嵌入类型“DOMDocument”匹配的互操作类型。您是否缺少程序集参考?
【发布时间】:2016-05-03 14:16:25
【问题描述】:

最近由于以下错误,我无法在工作中构建我的项目:

找不到与嵌入类型匹配的互操作类型 'DOM 文档'。您是否缺少程序集参考?

老实说,我不太确定如何处理该错误,也无法找出问题所在。它给了我导致原因的文件,顶部有这些导入语句:

Imports X.Online.Core
Imports X.Online.Connectivity
Imports X.Online.Classes
Imports Microsoft.VisualBasic
Imports System.ComponentModel
Imports System.Web
Imports X.Asp.Classes
Imports X.Asp.Core
Imports X.Asp.SiteSpecific
Imports MSXML2
Imports X.Online.State
Imports Elmah

据我所知,我似乎遗漏了一些东西,我看了看,起初我认为它是一个丢失的 MSXML2,但它在我的参考资料中显示为“Interop.MSXML2”所以现在我不确定这是问题所在。我应该补充一点,这个问题是在从 Windows 7 升级到 Windows 10 后出现的。

我还阅读了此处列出的建议:https://blogs.msdn.microsoft.com/vbteam/2010/06/11/troubleshooting-errors-when-embedding-type-information-doug-rothaus/

我还尝试修复我的 .net 4 安装。

如果有人能就如何解决此错误提供一些建议,我将不胜感激!

【问题讨论】:

  • MSXML2 是一个 COM 类型库。由于“嵌入互操作类型”程序集属性,它的互操作库将自动嵌入,因此您在运行时不需要 Interop.MSXML2.dll 文件。如果它嵌入到一个项目中而不是另一个项目中,您将收到此错误。查看项目中的程序集引用并确保该属性始终设置为 True。
  • 感谢您的回复。所以我认为 DOMDocument 指的是 MSXML2 导入是正确的?
  • @HansPassant 感谢您的回复。我检查了项目,其中一个被列为“Microsoft XML,v6.0”,在另一个项目中被列为“Interop.MSXML2”。这可能是问题的原因吗?它们都设置为“True”。

标签: .net visual-studio-2013


【解决方案1】:

只是让人们知道,如果其他人有类似的问题。我的问题似乎是 Visual Studio 已经为这两个项目导入了互操作文件,但是这两个项目都链接到了一个单独的 .dll 版本。我删除了它们,并确保添加对完全相同文件的引用,这解决了我的问题。

【讨论】:

    猜你喜欢
    • 2022-06-17
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2023-03-04
    • 2010-10-01
    • 2012-02-27
    • 2010-12-08
    • 1970-01-01
    相关资源
    最近更新 更多