5

私は COM リファレンスに不慣れで、Windows 7 64 ビット マシンで VS2010 を使用しています。今朝、私は TFS から既存のプロジェクトを削除しました。次に、プロジェクトをビルドしようとしたところ、次のエラーが発生しました。

型または名前空間名 'validatecom' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

そして、私はこの警告を受け取ります:

タイプ ライブラリ "d0b51ccc-aa31-47a1-b3ff-b8ed71c522a1" バージョン 1.0 のファイル パスを取得できません。ライブラリが登録されていません。(HRESULT からの例外: 0x8002801D (TYPE_E_LIBNOTREGISTERED))

参照を確認すると、案の定、ソリューション内の唯一の COM 参照に黄色の感嘆符が表示されます。無駄なテストをいくつか行った後、新しい COM リファレンスを追加してみることにしました。

参照の追加 -> COM タブ -> ランダム M$ ライブラリ

これにより、黄色の感嘆符が付いた新しい参照が作成されます。プロジェクトをビルドして、同じエラーが発生するかどうかを確認します。今回は、次のエラーが表示されます。

GUID '23d736f1-acbc-11d3-b0e8-00104bff2710' を持つ複数のバージョンのアセンブリが見つかりました。これらのアセンブリのいずれかを事前にインポートしてみてください。

そして、私はこの警告を受け取ります:

タイプ ライブラリ "ADODB" のラッパー アセンブリが見つかりません。

これら2つのエラーが関連しているかどうかはわかりません。そうでない場合は、最初の解決が確実に最後よりも優先されます。

4

1 に答える 1

5

もう 1 つチェックする必要があるのは、COM ライブラリが Windows のレジストリに登録されているかどうかです。これは、次のように行うことができます。

%windir%\system32\regsvr32 YourComLibrary.dll

次に、C# プロジェクトで参照しようとしている COM ライブラリをラップする相互運用 .NET DLL を作成する必要があります。これを行うには、タイプ ライブラリ インポーターユーティリティを実行します (Visual Studio 2010 コマンド プロンプトを使用します)。

tlbimp.exe YourComLibrary.dll /out:YourWrappedComLibrary.dll

ADODB リファレンスについては、おそらくPrimary Interop Assembly for ADO (ADODB)を参照する必要があります。これは、マシンの次の場所にあります。これへの参照を追加すると、うまくいくはずです。

C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\adodb.dll

うまくいけば、上記でうまくいくでしょう。COM をいじってから時間が経ちました... メモリが少し曇っているかもしれません。楽しみ!

于 2013-01-09T16:44:18.153 に答える