投稿者 るきお  (社会人) 投稿日時 2021/11/7 21:36:17
最近 COM を使おうとしたことがなかったので気が付きませんでした。確かにグレーアウトされていますね。
少し試したところ .NET 5 のクラスライブラリではグレーアウト、.NET Farmework 4.8 のクラスライブラリではOKでした。

.NET Core/.NET 5以降だと、従来とやり方が違うからでしょうか?私もよくわかりませんが、ひとまず、.NET CoreをCOMとして呼び出し可能にする記事はここにありました。
https://docs.microsoft.com/ja-jp/dotnet/core/native-interop/expose-components-to-com

>何が原因で、どうすればクラスライブラリを従来のように、
>各種アプリ(コンソールとかフォームアプリとか、クラスライブラリとか)から
>クラスライブラリが出来るようになるのでしょうか?
ちょっと肝心のご質問がわかりにくかったのですが、
各種アプリからクラスライブラリを呼び出したいのであれば、COMにする必要はありません。むしろCOMにしない方がベターです。
直接.NETのコンポーネント(アセンブリ)としてビルドして参照設定をするのが通常です。NuGetなどのパッケージを経由する方法もあります。
詳しくはこちらで説明しています。
https://www.umayadia.com/VBStandard2/Standard33.htm

この、「COM相互運用機能の登録」が必要になるのは、非.NETの世界(ExcelやVBScriptなど)から、.NETを呼び出す場合です。