Visual Studio:无法找到与嵌入类型“DOMDocument”匹配的互操作类型。您是否缺少程序集引用?

4

最近我在工作中遇到了以下错误,导致无法构建项目:

找不到与嵌入式类型 'DOMDocument' 匹配的互操作类型。您是否缺少程序集引用?

说实话,我不太确定如何解决这个错误,也找不出问题所在。它给出了导致问题的文件,并在文件顶部列出了以下导入语句:

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。 - Hans Passant
谢谢你的回复。所以我想得没错,DOMDocument是指的MSXML2导入吗? - asd
@HansPassant 感谢您的回复。我已经检查了这些项目,其中一个被列为“Microsoft XML,v6.0”,而另一个项目被列为“Interop.MSXML2”。这可能是问题的原因吗?它们都设置为“True”。 - asd
1个回答

6

只是想让大家知道,如果有人遇到类似的问题。看起来我的问题是Visual Studio导入了两个项目的Interop文件,但是两个项目链接到了一个单独版本的.dll文件。我将它们都删除,并确保添加对完全相同文件的引用,这解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接