C# Interop.MSXML2引发异常,因为它未注册但不会注册!

C# Interop.MSXML2引发异常,因为它未注册但不会注册!,c#,com,msxml,dllregistration,C#,Com,Msxml,Dllregistration,好的,这行代码: XMLHTTP40 http = new XMLHTTP40(); 抛出一个System.Runtime.InteropServices.COMException,并抱怨: 由于以下错误,检索CLSID为{88D969C5-F192-11D4-A65F-0040963251E5}的组件的COM类工厂失败:80040154 我已经在谷歌上搜索过了,我想这个DLL需要注册,因为它是一个COM DLL。这很好,但当我尝试注册它时,会出现以下错误: 已加载C:\some\direct

好的,这行代码:

XMLHTTP40 http = new XMLHTTP40();
抛出一个
System.Runtime.InteropServices.COMException
,并抱怨:

由于以下错误,检索CLSID为{88D969C5-F192-11D4-A65F-0040963251E5}的组件的COM类工厂失败:80040154

我已经在谷歌上搜索过了,我想这个DLL需要注册,因为它是一个COM DLL。这很好,但当我尝试注册它时,会出现以下错误:

已加载C:\some\directory\path\etc\Interop.MSXML2.dll,但未找到DllRegisterServer入口点。
无法注册此文件

显然,这是在另一个男人的盒子(他写的代码,所以是的…:p)。此COM对象未显示在我的可用COM引用列表中,因此我只引用位于项目bin\Debug目录中的DLL。当我将对此DLL的引用添加到我的项目中时,我可以访问VisualStudio中的所有符号。我想知道,我是否可以安装一些东西来注册DLL并将其显示在我可以引用的COM对象列表中?我安装了我认为是MSXML4.0库的东西,但是当我查看目录时,里面什么都没有


有什么想法吗?

您需要注册(regsvr32)msxml4.dll,而不是互操作程序集。msxml4.dll是COM服务器。

您需要注册(regsvr32)msxml4.dll,而不是互操作程序集。msxml4.dll是COM服务器。

您需要将msxml4实际安装到机箱上,它才能工作。互操作dll不包含任何运行时代码,它只帮助.NET与MSXML4对话


但是,为什么不使用System.Xml名称空间而不是使用COM组件呢?

您需要在机箱上安装MSXML4,它才能工作。互操作dll不包含任何运行时代码,它只帮助.NET与MSXML4对话


但是,为什么不使用System.Xml命名空间而不使用COM组件?

从技术上讲,这是正确的答案。问题是这应该已经注册了,而我遇到的问题是试图注册一个互操作DLL,该DLL被编译以与COM DLL接口。然而,我只是用
System.XML
重写了我的接口,现在我根本不需要处理COM。谢谢。从技术上来说,这是正确的答案。问题是这应该已经注册了,而我遇到的问题是试图注册一个互操作DLL,该DLL被编译以与COM DLL接口。然而,我只是用
System.XML
重写了我的接口,现在我根本不需要处理COM。谢谢