Assemblies et le Global Assembly Cache (GAC)

Les assemblies prennent la forme d'exécutables .exe ou de libraires .dll (dynamic linked librairie). Des développeurs peuvent très bien fournir un ensemble de modules qui pourront être assemblés ensembles.
Visual Studio ne peut créer qu'un seul assembli. Pour lier ou créer plusieurs assemblies et le lier entre eux nous devons utiliser le compilateur csc.exe et l'assemblies linker al.exe en ligne de commandes.

Comment construire un assemblie multifichiers

Visualiser le contenu d'un assembly

On peut consulter le contenu d'un assemblie en utilisant l'outil ildasm.exe (MSIL Disassembler - MicroSoft Intermédiate Language) depuis la console de commande Visual Studio :

Lacement de Ildasm depuis la console de commande Visual Studio
Visualisation du contenu d'un assembly grâce à Ildasm

Utilser gacutil pour gérer les assemblies du Global Assembly Cache

Pour être inclus dans le GAC un assembly doit posséder un nommage fort (strong-name) qui garanti son unicité.

Un assembly du GAC possède les caractéristiques suivantes :
Il ne sera chargé en mémoire que s'il est requis, autrement dit le GAC est un moyen efficace de gérer les ressources d'un grand projet.
On peut obtenir programmatiquement des informations sur un assembly en utilisant la Réflection (moyen de découvrir les méthodes et les propriétés d'un objet que l'on ne connait pas).

Signer un assembly avec un nom fort

Ensuite, on utilise l'outil gacutil.exe fournit dans le SDK. Cet outil ne doit utilisé qu'en développement, en déploiement il faut utiliser le Windows Installer pour installer des assemblies dans le Cache.

La commande pour lister les assemblies du cache est :
>gacutil -l

Installer un assembly dans le cache
Retirer un assembly du cache

Manifest d'assembli

C'est un peu la signature de l'assembli, il contient son nom sa version, la liste des références à d'autres assemblies. Parce que les manifest d'assemblies contiennent toutes les informations nécessaires sur l'assembly parce qu'il n'est pas lié aux clefs de registre, cela réduit les conflits de .dll et rend les applications plus faciles à déployer.

Aucun commentaire:

Publier un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.