5

プロジェクトをビルドしようとしていますが、プロジェクトがビルドされ、[COM 相互運用に登録] プロパティがオンになっていると、突然次のエラーが発生し始めました。

アセンブリ "c:\MyAssembly.dll" をタイプ ライブラリに変換できませんでした。'SomeType, MyAssembly' の処理中にタイプ ライブラリ エクスポータでエラーが発生しました。エラー: 参照された型は、読み込めなかったタイプ ライブラリからインポートされたマネージ コンポーネントで定義されています (型: 'OtherType'; コンポーネント: 'c:\OtherAssembly.dll')。

チームの他の誰もこのエラーを受け取りません。それは私だけです! 明らかに、私は自分のマシンに何か奇妙なことをしましたが、考えられるすべてのものを完全に削除/削除して再追加するというブルートフォースアプローチは何の違いもありませんでした.

そう:

  • このエラーの実際の意味
  • 何が問題なのかについての追加の、またはより具体的な診断情報については、次にどこを見ればよいですか?
4

4 に答える 4

2

私の場合、regasm を使用して登録された com 公開 dll (GUID を変更しました) がありました。次のコマンドを使用してアセンブリを登録解除する必要があり、プロジェクトを正常にビルドできました。

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>regasm /u "C:\some-vs-project\bin\Debug\some-vs-dll.dll"

また、GUID を変更した場合は、クラスで使用している assembly.cs で同じ GUID を使用していないことを確認する必要があります。クラス宣言とアセンブリの両方で同じ GUID を使用したため、同じエラーが発生します。

于 2012-06-01T18:11:53.960 に答える
2

私はこの問題を抱えていました。gactutil /u(アンインストールの場合)および(インストールの場合)同じことをしただけgacutil /i で、問題は解決しました

于 2012-03-08T02:01:49.340 に答える
1

私の場合、このエラーは、regsvr32 経由で COM サーバーを手動で登録したために発生しました。後で dll を含むフォルダーを移動したときに、レジストリを更新するのを忘れていました (つまり、COM サーバーの登録を解除してから再登録しました)。

サーバーを再登録すると、エラーが修正されました。

于 2011-07-29T09:09:38.510 に答える