※ ChatGPTを利用し、要約された質問です(原文:C#.NETでのCOMコンポーネント作成方法)
C#.NETでのCOMコンポーネント作成方法
このQ&Aのポイント
C#.NETでのCOMコンポーネント作成方法についてまとめました。
C#.NET2003で簡単なユーザコントロールを作成し、他のプロジェクトでも使えるようにする方法について解説します。
COMの相互運用機能を設定し、ユーザコントロールを.NETアセンブリに変換する手順について説明します。
お願いします。
C#.NET2003で、時間を表示する極簡単なユーザコントロールを作成しました。
そのユーザコントロールは、同じソリューションの中でTestアプリケーションを
作成し、参照設定で「参照の追加」-「プロジェクト」タブで追加することにより、
ツールボックスのマイユーザコントロール上に表示され、Testフォームに貼り
付けることが出来、正常に動作しました。
ここまではいいのですが、このユーザコントロールを誰でも使えるようにしようと、
以下を実行しました。
(1) 構成プロパティの「COMの相互運用機能に登録」を「True」に変更。
(2) sn.exe -k コマンドにより、.snkファイルを作成。
(3) ユーザコントロールのAssemblyInfo.csを2行修正。
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyKeyFile("..\\..\\SimpleUserControl.snk")]
(4) ソリューションをリビルド。
(5) リビルドしたDLLファイルをC:\Windows\assemblyフォルダにコピー。
このようにして、新しいプロジェクトを作成し、「参照の追加」のCOM
タブを見ると、ちゃんとユーザコントロールが見えるのですが、追加
しようとすると、以下のエラーが発生しました。
=============================================================
'SimpleUserControl'への参照を追加できませんでした。
タイプライブラリを.NETアセンブリに変換できませんでした。
タイプライブラリSimpleUserControlはCLRアセンブリからエクスポートされた
ため、CLRアセンブリとして再度インポートすることはできません。
=============================================================
何か手順が抜けているの思うのですが、どなたかご教示頂けないで
しょうか?
お礼
追加の質問は撤回します。 調べたら分かりました。 todo36さん、勘違いを正して下さり、ありがとうございました。 迷路にはまり込むこととでした。 重ねて御礼申し上げます。
補足
回答ありがとうございます。 なるほど、大きな勘違いをしていました。 COMとの相互接続は、todo36さんのおっしゃる通り、.NET以外の 環境でユーザコントロールを使いたい時に、COMの登録が必要と いうことですね。 私がやりたいのは、例えばC#.NETで作成したユーザコントロール を他の.NETアプリケーションで使いたいでけですので、 > .NETアプリから参照する場合は、普通に参照すればよい。 でいいのですね。 そこで初歩的な質問で恐縮ですが、C#.NETで作成したユーザ コントロールを、別の.NETアプリケーションプロジェクトのツール ボックスに表示させるには、どのような手順が必要か、教えて 頂ければ幸いです。 (単純に新規プロジェクトの参照設定に追加してもツールボックス に表示されないもので) 以上、よろしくお願い致します。