Assemblys dans le Common Language RuntimeAssemblies in the Common Language Runtime

Les assemblys sont les composantes des applications .NET Framework. Ils forment l’unité fondamentale de déploiement, de gestion de version, de réutilisation, de portée d’activation et des autorisations de sécurité.Assemblies are the building blocks of .NET Framework applications; they form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions. Un assembly est une collection de types et de ressources conçus pour opérer ensemble et former une unité logique de fonctionnalité.An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. Un assembly fournit au Common Language Runtime les informations dont il a besoin pour connaître les implémentations de type.An assembly provides the common language runtime with the information it needs to be aware of type implementations. Pour le runtime, un type n'existe pas en dehors du contexte d'un assembly.To the runtime, a type does not exist outside the context of an assembly.

Un assembly remplit les fonctions suivantes :An assembly performs the following functions:

  • Il contient le code que le Common Language Runtime exécute.It contains code that the common language runtime executes. Le code MSIL (Microsoft Intermediate Language) inclus dans un fichier exécutable portable (PE, portable executable) n'est pas exécuté s'il n'est pas associé à un manifeste d'assembly.Microsoft intermediate language (MSIL) code in a portable executable (PE) file will not be executed if it does not have an associated assembly manifest. Notez que chaque assembly ne peut comporter qu'un seul point d'entrée (c'est-à-dire DllMain, WinMain ou Main).Note that each assembly can have only one entry point (that is, DllMain, WinMain, or Main).

  • Il forme une frontière de sécurité.It forms a security boundary. Un assembly est l'unité au niveau de laquelle les autorisations sont demandées et octroyées.An assembly is the unit at which permissions are requested and granted. Pour plus d’informations sur les limites de sécurité applicables aux assemblys, consultez Aspects de la sécurité des assemblys.For more information about security boundaries as they apply to assemblies, see Assembly Security Considerations.

  • Il constitue la limite d'un type.It forms a type boundary. L'identité de chaque type inclut le nom de l'assembly dans lequel il réside.Every type's identity includes the name of the assembly in which it resides. Un type appelé MyType chargé dans l'étendue d'un assembly n'est pas le même qu'un type appelé MyType chargé dans l'étendue d'un autre assembly.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.

  • Il constitue la limite de l'étendue de référence.It forms a reference scope boundary. Le manifeste de l'assembly contient des métadonnées d'assembly utilisées pour résoudre les types et satisfaire les demandes de ressources.The assembly's manifest contains assembly metadata that is used for resolving types and satisfying resource requests. Il spécifie les types et ressources exposés en dehors de l'assembly.It specifies the types and resources that are exposed outside the assembly. Le manifeste énumère également les autres assemblys desquels il dépend.The manifest also enumerates other assemblies on which it depends.

  • Il forme une limite de version.It forms a version boundary. L'assembly est l'unité avec version éventuelle la plus petite dans le Common Language Runtime. Tous les types et ressources inclus dans le même assembly se voient attribuer leur version dans le cadre d'une unité.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. Le manifeste de l'assembly décrit les dépendances de version que vous spécifiez pour les assemblys dépendants.The assembly's manifest describes the version dependencies you specify for any dependent assemblies. Pour plus d’informations sur le contrôle de version, consultez Contrôle de version des assemblys.For more information about versioning, see Assembly Versioning.

  • Il forme une unité de déploiement.It forms a deployment unit. Quand une application démarre, seuls les assemblys qu'elle appelle initialement doivent être présents.When an application starts, only the assemblies that the application initially calls must be present. Les autres assemblys, comme les ressources de localisation ou les assemblys contenant des classes utilitaires, peuvent être récupérés à la demande.Other assemblies, such as localization resources or assemblies containing utility classes, can be retrieved on demand. Ainsi, les applications restent simples et légères lors de leur premier téléchargement.This allows applications to be kept simple and thin when first downloaded. Pour plus d’informations sur le déploiement des assemblys, consultez Déploiement d’applications.For more information about deploying assemblies, see Deploying Applications.

  • Il forme l'unité au niveau de laquelle une exécution côte à côte est prise en charge.It is the unit at which side-by-side execution is supported. Pour plus d’informations sur l’exécution de plusieurs versions d’un assembly, consultez Assemblys et exécution côte à côte.For more information about running multiple versions of an assembly, see Assemblies and Side-by-Side Execution.

Les assemblys peuvent être statiques ou dynamiques.Assemblies can be static or dynamic. Les assemblys statiques peuvent inclure des types .NET Framework (interfaces et classes), ainsi que des ressources d'assembly (bitmaps, fichiers JPEG, fichiers de ressources, etc.).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). Les assemblys statiques sont stockés sur le disque dans des fichiers exécutables portables (PE).Static assemblies are stored on disk in portable executable (PE) files. Vous pouvez également utiliser le .NET Framework pour créer des assemblys dynamiques, directement exécutés à partir de la mémoire et non enregistrés sur le disque avant leur exécution.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. Vous pouvez enregistrer des assemblys dynamiques sur le disque une fois qu'ils ont été exécutés.You can save dynamic assemblies to disk after they have executed.

Pour créer des assemblys, différentes possibilités s'offrent à vous.There are several ways to create assemblies. Vous pouvez utiliser les outils de développement, comme Visual Studio, que vous avez utilisés par le passé pour créer des fichiers .dll ou .exe.You can use development tools, such as Visual Studio, that you have used in the past to create .dll or .exe files. Vous pouvez utiliser les outils fournis dans le Windows Software Development Kit (SDK) pour créer des assemblys avec des modules créés dans d'autres environnements de développement.You can use tools provided in the Windows Software Development Kit (SDK) to create assemblies with modules created in other development environments. Vous pouvez également utiliser les API du Common Language Runtime, comme System.Reflection.Emit, pour créer des assemblys dynamiques.You can also use common language runtime APIs, such as System.Reflection.Emit, to create dynamic assemblies.

TitreTitle DescriptionDescription
Contenu d’un assemblyAssembly Contents Décrit les éléments qui constituent un assembly.Describes the elements that make up an assembly.
Manifeste d’assemblyAssembly Manifest Décrit les données incluses dans le manifeste d'assembly et la manière dont elles sont stockées dans les assemblys.Describes the data in the assembly manifest, and how it is stored in assemblies.
Global Assembly CacheGlobal Assembly Cache Décrit le Global Assembly Cache et la manière dont il est utilisé avec les assemblys.Describes the global assembly cache and how it is used with assemblies.
Assemblys avec nom fortStrong-Named Assemblies Décrit les caractéristiques des assemblys avec nom fort.Describes the characteristics of strong-named assemblies.
Aspects de la sécurité des assemblysAssembly Security Considerations Présente la manière dont la sécurité fonctionne avec les assemblys.Discusses how security works with assemblies.
Contrôle de version des assemblysAssembly Versioning Fournit une vue d'ensemble de la stratégie de contrôle de version du .NET Framework.Provides an overview of the .NET Framework versioning policy.
Emplacement des assemblysAssembly Placement Explique où localiser les assemblys.Discusses where to locate assemblies.
Assemblys et exécution côte à côteAssemblies and Side-by-Side Execution Fournit une vue d'ensemble de l'utilisation simultanée de plusieurs versions du runtime ou d'un assembly.Provides an overview of using multiple versions of the runtime or of an assembly simultaneously.
Programmation à l’aide d’assemblysProgramming with Assemblies Décrit comment créer, signer et définir des attributs sur des assemblys.Describes how to create, sign, and set attributes on assemblies.
Émission d’assemblys et de méthodes dynamiquesEmitting Dynamic Methods and Assemblies Décrit comment créer des assemblys dynamiques.Describes how to create dynamic assemblies.
Méthode de localisation des assemblys par le runtimeHow the Runtime Locates Assemblies Décrit comment le .NET Framework résout les références d'assembly au moment de l'exécution.Describes how the .NET Framework resolves assembly references at run time.

RéférenceReference

System.Reflection.Assembly