1

わかりました、このコード行:

XMLHTTP40 http = new XMLHTTP40();

aをスローし、次のようSystem.Runtime.InteropServices.COMExceptionに不平を言います。

次のエラーのため、CLSID {88D969C5-F192-11D4-A65F-0040963251E5} を持つコンポーネントの COM クラス ファクトリを取得できませんでした: 80040154。

私はそれをグーグルで調べましたが、COM DLLであるため、DLLを登録する必要があると思います。それは問題ありませんが、登録しようとすると次のエラーが発生します。

C:\some\directory\path\etc\Interop.MSXML2.dll が読み込まれましたが、DllRegisterServer エントリ ポイントが見つかりませんでした。
このファイルは登録できません。

どうやらこれは別の人のボックスで動作しているようです(彼はコードを書いたので、ええ.. :P)。この COM オブジェクトは、利用可能な COM 参照のリストに表示されないため、プロジェクトの bin\Debug ディレクトリにある DLL を参照するだけです。この DLL への参照をプロジェクトに追加すると、VisualStudio のすべてのシンボルにアクセスできるようになります。DLL を登録し、参照できる COM オブジェクトのリストに表示されるようにインストールできるものはありますか? MSXML 4.0 ライブラリと思われるものをインストールしましたが、ディレクトリを調べたところ、そこには何もありませんでした。

何か案は?

4

2 に答える 2

5

実際に MSXML4 をボックスにインストールして動作させる必要があります。相互運用 dll にはランタイム コードは含まれず、.NET が MSXML4 と対話するのに役立つだけです。

しかし、COM コンポーネントを使用する代わりに System.Xml 名前空間を使用しないのはなぜでしょうか?

于 2009-08-20T12:01:28.497 に答える
0

相互運用アセンブリではなく、(regsvr32) msxml4.dll を登録する必要があります。msxml4.dll は COM サーバーです。

于 2009-08-20T11:59:12.773 に答える