マルチファイル アセンブリ
更新 : 2007 年 11 月
マルチファイル アセンブリは、コマンド ライン コンパイラまたは Visual C++ 付き Visual Studio 2005 を使用して作成できます。アセンブリ内の 1 つのファイルでアセンブリ マニフェストを格納している必要があります。また、アプリケーションを起動するアセンブリは、Main メソッドや WinMain メソッドなどのエントリ ポイントを含む必要があります。
たとえば、Client.cs と Stringer.cs の 2 つのコード モジュールを含むアプリケーションがあるとします。Stringer.cs は、Client.cs 内のコードによって参照される myStringer 名前空間を作成します。Client.cs は、アプリケーションのエントリ ポイントである Main メソッドを格納します。この例で、この 2 つのコード モジュールをコンパイルしてから、アプリケーションを起動するためのアセンブリ マニフェストを格納する 3 番目のファイルを作成します。アセンブリ マニフェストは、Client モジュールと Stringer モジュールの両方を参照します。
メモ : |
---|
マルチファイル アセンブリは、アセンブリに複数のコード モジュールがある場合でも、1 つのエントリ ポイントしか持つことができません。 |
マルチファイル アセンブリの作成が必要になる理由は、いくつか考えられます。
異なる言語で記述された複数のモジュールを結合するため。これは、マルチファイル アセンブリの作成が必要になる最も一般的な理由です。
必要な場合にしかダウンロードされないモジュールに使用頻度の低い型を配置することで、アプリケーションのダウンロードを最適化するため。
メモ : <object> タグと Microsoft Internet Explorer を使用してダウンロードされるアプリケーションを作成する場合は、マルチファイル アセンブリを作成することが重要です。この方法では、アセンブリは、アセンブリ マニフェストだけを格納するコードモジュールとは分けて作成します。Internet Explorer は、最初にアセンブリ マニフェストをダウンロードしてから、その他の必要なモジュールまたはアセンブリをすべてダウンロードするためにワーカー スレッドを作成します。アセンブリ マニフェストを格納するファイルのダウンロード中は、Internet Explorer はユーザーからの入力には応答しません。アセンブリ マニフェストを格納するファイルが小さいほど、Internet Explorer が応答しない時間は短くなります。
複数の開発者が記述したコード モジュールを結合するため。開発者は作成したコード モジュールを各自でコンパイルできます。しかしこの場合、すべてのモジュールを 1 つのマルチファイル アセンブリにするときには公開されない型が、パブリックな型として公開されてしまうことがあります。
アセンブリを作成した後は、アセンブリ マニフェストの格納ファイル、つまりアセンブリに署名したり、ファイルおよびアセンブリに厳密な名前を付けてグローバル アセンブリ キャッシュに配置したりできます。