Attributs globaux en Visual Basic

Mise à jour : novembre 2007

La plupart des attributs sont attachés à des éléments spécifiques du langage, comme les classes ou les méthodes. Toutefois, il existe également des attributs dits globaux, qui peuvent s'appliquer à un assembly ou à un module tout entier.

Vous pouvez définir la plupart des attributs dans l'environnement de développement intégré (IDE) Visual Studio à l'aide de la Informations de l'assembly, boîte de dialogue. Pour plus d'informations, consultez Gestion des propriétés de l'application et Gestion d'assembly et signature de manifeste.

Attributs d'assembly

La syntaxe suivante permet de spécifier des attributs au niveau assembly :

<Assembly: Attribute1, Assembly: Attribute2..., Assembly: AttributeN>

Une syntaxe similaire permet de spécifier des attributs au niveau module :

<Module: Attribute1, Module: Attribute2..., Module: AttributeN>

Dans le code source, les attributs globaux doivent être ajoutés après les directives de niveau supérieur, telles que les instructions Option Explicit et Imports, mais avant toute déclaration d'espace de noms ou de type. Des attributs globaux peuvent apparaître dans plusieurs fichiers sources d'un projet, mais ils sont généralement placés dans le fichier AssemblyInfo.vb créé automatiquement avec les projets Visual Basic.

Les attributs d'assembly sont des valeurs qui fournissent des informations au sujet d'un assembly. Ils peuvent être répartis dans les catégories suivantes :

  • attributs d'identité d'assembly ;

  • attributs d'informations ;

  • attributs de manifeste d'assembly ;

  • attributs de nom fort ;

attributs d'identité d'assembly.

Trois attributs (associés à un nom fort s'il est applicable) déterminent l'identité d'un assembly : nom, version et culture. Ces attributs constituent le nom complet de l'assembly. Ils sont requis lorsque l'assembly est référencé en code. Vous pouvez définir la version et la culture d'un assembly à l'aide d'attributs. La valeur de nom, cependant, est désignée par le compilateur, par l'IDE Visual Studio dans la Informations de l'assembly, boîte de dialogue ou par Assembly Linker (Al.exe) au moment de la création de l'assembly, d'après le fichier qui contient le manifeste d'assembly. L'attribut AssemblyFlagsAttribute détermine si plusieurs copies de l'assembly peuvent coexister.

Le tableau suivant répertorie les attributs d'identité.

Attribut

But

AssemblyName

Décrit intégralement l'identité d'un assembly.

AssemblyVersionAttribute

Spécifie la version d'un assembly.

AssemblyCultureAttribute

Spécifie la culture prise en charge par l'assembly.

AssemblyFlagsAttribute

Spécifie si un assembly prend en charge l'exécution côte à côte sur le même ordinateur, dans le même processus ou dans le même domaine d'application.

Le code suivant applique des attributs de version et de culture à un assembly :

'Set version number for assembly.
<Assembly: Reflection.AssemblyVersionAttribute("4.3.2.1")> 
'Set culture as German.
<Assembly: Reflection.AssemblyCultureAttribute("de")> 

Attributs d'informations

Vous pouvez utiliser des attributs d'informations pour fournir des informations complémentaires relatives à la société ou au produit au sujet d'un assembly. Le tableau suivant répertorie les attributs d'informations définis dans l'espace de noms System.Reflection.

Attribut

But

AssemblyProductAttribute

Définit un attribut personnalisé qui spécifie un nom de produit pour un manifeste d'assembly.

AssemblyTrademarkAttribute

Définit un attribut personnalisé qui spécifie une marque pour un manifeste d'assembly.

AssemblyInformationalVersionAttribute

Définit un attribut personnalisé qui spécifie une version d'informations pour un manifeste d'assembly.

AssemblyCompanyAttribute

Définit un attribut personnalisé qui spécifie un nom de société pour un manifeste d'assembly.

AssemblyCopyrightAttribute

Définit un attribut personnalisé qui spécifie un copyright pour un manifeste d'assembly.

AssemblyFileVersionAttribute

Indique au compilateur d'utiliser un numéro de version spécifique pour la ressource de version de fichier Win32.

CLSCompliantAttribute

Indique si l'assembly est conforme à la spécification CLS (Common Language Specification).

Attributs de manifeste d'assembly

Vous pouvez utiliser les attributs de manifeste d'assembly pour fournir des informations dans le manifeste d'assembly. Cela inclut le titre, la description, l'alias par défaut et la configuration. Le tableau suivant répertorie les attributs de manifeste d'assembly définis dans l'espace de noms System.Reflection.

Attribut

But

AssemblyTitleAttribute

Définit un attribut personnalisé qui spécifie un titre d'assembly pour un manifeste d'assembly.

AssemblyDescriptionAttribute

Définit un attribut personnalisé qui spécifie une description d'assembly pour un manifeste d'assembly.

AssemblyConfigurationAttribute

Définit un attribut personnalisé qui spécifie une configuration d'assembly (par exemple retail ou debug) pour un manifeste d'assembly.

AssemblyDefaultAliasAttribute

Définit un alias par défaut convivial pour un manifeste d'assembly.

Attributs de nom fort

Les noms forts sont des identificateurs uniques qui protègent l'identité et l'intégrité d'un assembly. Vous pouvez signer un assembly à partir de l'IDE Visual Studio à l'aide de la Page Signature, Concepteur de projets. Pour plus d'informations, consultez Gestion d'assembly et signature de manifeste.

Vous pouvez également utiliser des attributs avec nom fort afin de définir un nom fort pour un assembly. Le tableau suivant affiche les attributs avec nom fort définis dans l'espace de noms System.Reflection.

Attribut

But

AssemblyDelaySignAttribute

Valeur booléenne indiquant si vous devez réserver de l'espace dans un fichier exécutable pour la signature de nom fort, mais qui reporte la signature effective à un moment ultérieur. Pour plus d'informations, consultez Temporisation de signature d'un assembly.

AssemblyKeyFileAttribute

Indique le fichier contenant une clé. L'emplacement de KeyFile doit être relatif au répertoire de sortie du projet, c'est-à-dire %Répertoire du projet%\obj\<configuration>. Par exemple, si KeyFile se situe dans le répertoire de projet, vous devez spécifier l'attribut AssemblyKeyFile comme suit :

[assembly: AssemblyKeyFile("..\\..\\mykey.snk")]

AssemblyKeyNameAttribute

Fait référence à une clé installée dans le fournisseur de services de chiffrement (CSP) sur votre ordinateur. Vous devez spécifier une clé pour signer le fichier.

Si les valeurs KeyFile et KeyName sont spécifiées, le traitement suivant se produit :

  • Si KeyName peut être trouvé dans le CSP, cette clé est utilisée.

  • Si KeyName n'existe pas et si KeyFile existe, la clé de KeyFile est installée dans le CSP et est utilisée.

  • Pour plus d'informations, consultez Aspects de la sécurité des assemblys.

Signatures des assemblys

Vous pouvez signer un assembly de deux manières différentes, mais complémentaires : avec un nom fort ou avec une signature. Vous pouvez le signer à l'aide de la Page Signature, Concepteur de projets de l'IDE Visual Studio ou en utilisant l'Outil File Signing Tool (Signcode.exe). Lorsque vous signez un assembly avec un nom fort, il ajoute un chiffrement à clé publique au fichier contenant le manifeste d'assembly. La signature avec un nom fort permet de vérifier l'unicité du nom, empêche l'usurpation de noms et fournit aux appelants une certaine identité lorsqu'une référence est résolue. Pour plus d'informations, consultez Gestion d'assembly et signature de manifeste et Comment : signer un assembly avec un nom fort.

Pour signer un assembly avec un nom fort

  1. Utilisez le Outil Strong Name Tool (Sn.exe) pour générer un fichier de clé contenant une paire de clés.

  2. Ajoutez des attributs de nom fort au fichier AssemblyInfo.vb créé automatiquement avec les projets Visual Basic. Pour modifier ce fichier, double-cliquez sur son nom dans l'Explorateur de solutions.

    L'exemple suivant utilise la temporisation de signature pour créer un assembly à nom fort avec un fichier de clé publique appelé myKey.snk.

    <Assembly: Reflection.AssemblyKeyFile("myKey.snk")> 
    <Assembly: Reflection.AssemblyDelaySign(True)> 
    
    Remarque :

    Les attributs d'assembly sont ignorés si ce n'est pas un assembly que vous créez, comme c'est le cas lors de la compilation à partir de la ligne de commande avec l'option /target:module.

Voir aussi

Tâches

Comment : définir vos propres attributs

Comment : signer un assembly avec un nom fort

Concepts

Application des attributs

Aspects de la sécurité des assemblys

Référence

Outil Strong Name Tool (Sn.exe)

Outil File Signing Tool (Signcode.exe)

Page Signature, Concepteur de projets

Informations de l'assembly, boîte de dialogue

Autres ressources

Attributs personnalisés en Visual Basic

Gestion des propriétés de l'application

Gestion d'assembly et signature de manifeste