アセンブリ (プログラミング)
アセンブリとは、型と他の資源から構成されるランタイムユニットである。アセンブリ内にある全ての型は同じバージョン番号を持つ。
しばしば、1つのアセンブリは1つだけの名前空間を持ち、1つのプログラムで使用される。しかしそのアセンブリはいくつかの名前空間を超えて広がる。また、1つの名前空間がいくつかのアセンブリを超えて拡大することもある。巨大な設計において、アセンブリは「マニフェスト」(つまり内容のテーブル)によって共に収容された複数のファイルから構成されてもよい。
C#やVB.NETなどの.NET言語において、アセンブリは使用される最小の配置ユニットであり、.NET内のコンポーネントである。たとえばMicrosoft Windows環境の場合、具体的にはDLLやEXEとなる。転じて、.NETコンポーネントではないネイティブのDLL/EXEも、「アセンブリ」と呼ばれることがある[1]。Javaにおいて、それはJARファイルである[2]。
アセンブリの作成
C#においては、コンパイルごとに、「アセンブリ」か「モジュール」[3]のいずれかが作成される。「アセンブリ リンカー」 (al) [4]を用いて他のモジュールを加えることができる。
Javaの特徴は、各クラスごとに*.class
ファイルを作成することであり、この点でC#とは異なる。対象となるアセンブリに追加されるYを伴う新規のA.exe
を作成するcsc /addmodule:Y.netmodule A.cs
のように、作成はコンパイラのスイッチで活性化させることが可能である[5]。
脚注
- ^ C/C++ 分離アプリケーションおよび side-by-side アセンブリのビルド
- ^ Mossenbock, Hanspeter (2002年3月25日). “Advanced C#: Variable Number of Parameters”. http://ssw.jku.at/Teaching/Lectures/CSharp/Tutorial/:+ Institut fur Systemsoftware, Johannes Kepler Universitat Linz, Fachbereich Informatik. p. 37. 2011年8月5日閲覧。
- ^ 連載! とことん C#: 第 18 回 モジュール (.netmodule) の意義 言語: C#
- ^ Al.exe (アセンブリ リンカー)
- ^ Mossenbock, Hanspeter (2002年3月25日). “Advanced C#: Variable Number of Parameters”. http://ssw.jku.at/Teaching/Lectures/CSharp/Tutorial/:+ Institut fur Systemsoftware, Johannes Kepler Universitat Linz, Fachbereich Informatik. pp. 38〜40. 2011年8月5日閲覧。
関連項目
- アセンブリ (共通言語基盤): .NET Frameworkにおけるアセンブリについて
- 分離アプリケーションとSide-by-Sideアセンブリ