GACのアセンブリを呼び出す

ここでは、GACのアセンブリをプログラムから呼び出してみたいと思います。今回Delphi .NET で呼び出してみたかったのですが、作成の方法が違うのかもしれませんが、なぜかうまくいきませんでしたので、C#アプリケーションから呼び出しをしています。 まず、新規作成で、C#アプリケーションを作成します。
GACのアセンブリを呼び出す:画像1

右側のプロジェクトマネージャーの参照先のポップアップメニューから「参照の追加」を選択し、ダイアログを表示させます。次に、参照ボタンを押し、先ほど作成したライブラリのDLLを追加します。
GACのアセンブリを呼び出す:画像2

 OKボタンを押し参照を追加します。続いて、Using部分に、参照したライブラリを追加します。最初の部分を入力すると、コード補完でネームスペースが表示され、参照が正しくできていることが確認できます。ライブラリ作成のときとは少し名前が違うようですがこれで良いみたいです。
GACのアセンブリを呼び出す:画像3

 次にフォームの設計ですが、ボタンをひとつ、テキストボックスをひとつ置きます。
GACのアセンブリを呼び出す:画像4

 ボタンの、OnClickイベントにコードを書きます。C#らしく、new と ToString() をつかってコードを書いてみました。
GACのアセンブリを呼び出す:画像5

 アプリケーションを実行し、ボタンを押します。正しく結果が戻ってきていることが確認できます。
GACのアセンブリを呼び出す:画像6

 このとき、実行ファイルのあるディレクトリをエクスプローラなどで開いてみます。もし、このディレクトリに参照したDLLがあるならば、削除してからプログラムを実行してみてください。この場合でも、うまく動作することが確認できます。下の図のように、DLLが同じフォルダに無くてもプログラムが動作 しますので、GACを探してアクセスできていることが確認できます。
GACのアセンブリを呼び出す:画像7

ちなみに、全く同じことをDelphiでしてみたのですがコンパイルは通るのですが、実行時エラーが出ました。若干仕様が違うのかもしれません。
GACのアセンブリを呼び出す:画像8

次のセクションではCOMで使えるように、タイプライブラリを抜き出してみたり、インターフェイスを明示的に指定してみたいと思います。


AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2005-01-01
Copyright © 1995–2025 iPentec all rights reserverd.