Microsoft Excel で .NET クラス ライブラリにアクセスしようとしています。これを行うには、.NET クラス ライブラリを COM に登録する必要があることを知っています。そこで、アセンブリ情報に移動して、COM Visible を true に設定しようとしました。次に、ビルドタブで、Register for COM Interop も true に設定しました。AssemblyInfo.cs ファイルを確認したところ、次のものが含まれています[assembly: ComVisible(true)]
. しかし、何らかの理由で、Excel で Class Lib への参照を追加しようとすると、名前空間がリストに表示されません。何も入っていない簡単なテスト クラス ライブラリを作成し、同じこと (COM Vis = true を設定し、COM Interop に登録 = true を設定) を行ったところ、利用可能な参照のリストに表示されます。2つのクラスの違いがわかりません。クラスが実際に COM 相互運用に登録されているかどうかはわかりません。これを修正するために私に何ができるか知っている人はいますか???
追加: RegAsm を使用してクラスを手動で登録しようとしましたが、次のメッセージが表示されます..."RegAsm : warning RA0000 : No types were registered"
追加: プロジェクトの出力ディレクトリを確認したところ、プロジェクトのビルド時にタイプ ライブラリ ファイル (*.tlb) が作成されていないことに気付きました。各クラスに独自の GUID 属性があることを確認しました。プロジェクトには、構造体、インターフェイス、または列挙型が含まれていません。