共通言語ランタイムのアセンブリAssemblies in the Common Language Runtime

アセンブリは .NET Framework アプリケーションのビルド ブロックであり、配置、バージョン管理、再利用、アクティブ化のスコープの指定、およびセキュリティ アクセス許可の基本単位となります。Assemblies are the building blocks of .NET Framework applications; they form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions. アセンブリは、相互に連携して 1 つの論理的な機能単位を形成するように構築された型やリソースの集合です。An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. 共通言語ランタイムは、型の実装に関して必要な情報をアセンブリから取得します。An assembly provides the common language runtime with the information it needs to be aware of type implementations. 共通言語ランタイムにとって、型はアセンブリのコンテキストの外部には存在しません。To the runtime, a type does not exist outside the context of an assembly.

アセンブリの機能は次のとおりです。An assembly performs the following functions:

  • 共通言語ランタイムが実行するコードを保持します。It contains code that the common language runtime executes. ポータブル実行可能 (PE: Portable Executable) ファイル内の MSIL (Microsoft Intermediate Language) コードにアセンブリ マニフェストが関連付けられていない場合、このコードは実行されません。Microsoft intermediate language (MSIL) code in a portable executable (PE) file will not be executed if it does not have an associated assembly manifest. 各アセンブリが保持できるエントリ ポイントは 1 つだけです (つまり、DllMainWinMain、または Main)。Note that each assembly can have only one entry point (that is, DllMain, WinMain, or Main).

  • セキュリティの境界を形成します。It forms a security boundary. アクセス許可の要求および付与は、アセンブリを単位として行われます。An assembly is the unit at which permissions are requested and granted. アセンブリに適用されるセキュリティ境界の詳細については、「アセンブリのセキュリティに関する考慮事項」を参照してください。For more information about security boundaries as they apply to assemblies, see Assembly Security Considerations.

  • 型の境界を形成します。It forms a type boundary. すべての型の ID には、その型を含んでいるアセンブリの名前が含まれます。Every type's identity includes the name of the assembly in which it resides. したがって、あるアセンブリのスコープに読み込まれた MyType と呼ばれる型は、別のアセンブリのスコープに読み込まれた MyType と呼ばれる型とは異なります。A type called MyType that is loaded in the scope of one assembly is not the same as a type called MyType that is loaded in the scope of another assembly.

  • 参照スコープの境界を形成します。It forms a reference scope boundary. アセンブリのマニフェストには、型を解決したり、リソース要求に応答したりするために使用されるアセンブリ メタデータが含まれています。The assembly's manifest contains assembly metadata that is used for resolving types and satisfying resource requests. このメタデータは、アセンブリの外部に公開する型およびリソースを指定します。It specifies the types and resources that are exposed outside the assembly. マニフェストには、そのアセンブリが依存するほかのアセンブリも列挙されています。The manifest also enumerates other assemblies on which it depends.

  • バージョンの境界を形成します。It forms a version boundary. アセンブリは、共通言語ランタイムにおけるバージョン管理の最小単位です。同じアセンブリ内のすべての型およびリソースは、まとめてバージョン管理されます。The assembly is the smallest versionable unit in the common language runtime; all types and resources in the same assembly are versioned as a unit. アセンブリのマニフェストには、任意の依存アセンブリに対して指定した、バージョンの依存関係が記述されています。The assembly's manifest describes the version dependencies you specify for any dependent assemblies. バージョン管理の詳細については、「アセンブリのバージョン管理」を参照してください。For more information about versioning, see Assembly Versioning.

  • 配置を行う場合の単位として機能します。It forms a deployment unit. アプリケーションの起動時には、そのアプリケーションが最初に呼び出すアセンブリだけが必要です。When an application starts, only the assemblies that the application initially calls must be present. その他のアセンブリ、たとえばローカリゼーション リソースや、ユーティリティ クラスを格納するアセンブリは必要に応じて取得できます。Other assemblies, such as localization resources or assemblies containing utility classes, can be retrieved on demand. これにより、最初にダウンロードされるアプリケーションを単純化し、サイズを縮小できます。This allows applications to be kept simple and thin when first downloaded. アセンブリの配置の詳細については、「アプリケーションの配置」を参照してください。For more information about deploying assemblies, see Deploying Applications.

  • side-by-side 実行がサポートされる場合、その単位として機能します。It is the unit at which side-by-side execution is supported. 同じアセンブリの複数バージョンの同時実行については、「アセンブリと side-by-side 実行」を参照してください。For more information about running multiple versions of an assembly, see Assemblies and Side-by-Side Execution.

アセンブリには、静的アセンブリと動的アセンブリの 2 種類があります。Assemblies can be static or dynamic. 静的アセンブリには、.NET Framework の各型 (インターフェイスおよびクラス) と、アセンブリ用のリソース (ビットマップ、JPEG ファイル、リソース ファイルなど) を格納できます。Static assemblies can include .NET Framework types (interfaces and classes), as well as resources for the assembly (bitmaps, JPEG files, resource files, and so on). 静的アセンブリは、ディスク上のポータブル実行可能 (PE) ファイルに保存されます。Static assemblies are stored on disk in portable executable (PE) files. .NET Framework を使用して動的アセンブリを作成することもできます。動的アセンブリはメモリから直接実行され、実行前にディスクに保存されることはありません。You can also use the .NET Framework to create dynamic assemblies, which are run directly from memory and are not saved to disk before execution. 動的アセンブリは、実行後にディスクに保存できます。You can save dynamic assemblies to disk after they have executed.

アセンブリを作成するには、いくつかの方法があります。There are several ways to create assemblies. Visual Studio など、これまで .dll ファイルや .exe ファイルの作成に使用してきた開発ツールを使用できます。You can use development tools, such as Visual Studio, that you have used in the past to create .dll or .exe files. 他の開発環境で作成されたモジュールを使ってアセンブリを作成するには、Windows Software Development Kit (SDK) に付属している各種ツールを使用できます。You can use tools provided in the Windows Software Development Kit (SDK) to create assemblies with modules created in other development environments. 動的アセンブリの作成には、System.Reflection.Emit などの共通言語ランタイム API も使用できます。You can also use common language runtime APIs, such as System.Reflection.Emit, to create dynamic assemblies.

TitleTitle 説明Description
アセンブリの内容Assembly Contents アセンブリを構成する要素について説明します。Describes the elements that make up an assembly.
アセンブリ マニフェストAssembly Manifest アセンブリ マニフェストのデータについて説明し、データをアセンブリに格納する方法について説明します。Describes the data in the assembly manifest, and how it is stored in assemblies.
グローバル アセンブリ キャッシュGlobal Assembly Cache グローバル アセンブリ キャッシュと、そのキャッシュをアセンブリがどのように使用するかを説明します。Describes the global assembly cache and how it is used with assemblies.
厳密な名前付きアセンブリStrong-Named Assemblies 厳密な名前付きアセンブリの特性について説明します。Describes the characteristics of strong-named assemblies.
アセンブリのセキュリティに関する考慮事項Assembly Security Considerations セキュリティがアセンブリに対してどのように作用するかを説明します。Discusses how security works with assemblies.
アセンブリのバージョン管理Assembly Versioning .NET Framework のバージョン管理ポリシーの概要を説明します。Provides an overview of the .NET Framework versioning policy.
アセンブリの配置Assembly Placement アセンブリの配置場所について説明します。Discusses where to locate assemblies.
アセンブリと side-by-side 実行Assemblies and Side-by-Side Execution 複数のバージョンのランタイムやアセンブリの同時使用の概要について説明します。Provides an overview of using multiple versions of the runtime or of an assembly simultaneously.
アセンブリを使用したプログラミングProgramming with Assemblies アセンブリを作成し、署名し、その属性を設定する方法を説明します。Describes how to create, sign, and set attributes on assemblies.
動的メソッドおよびアセンブリの出力Emitting Dynamic Methods and Assemblies 動的アセンブリの作成方法を説明します。Describes how to create dynamic assemblies.
ランタイムがアセンブリを検索する方法How the Runtime Locates Assemblies 実行時に .NET Framework でアセンブリ参照がどのように解決されるかについて説明します。Describes how the .NET Framework resolves assembly references at run time.

関連項目Reference

System.Reflection.Assembly