Assembly Linker (Al.exe)

Assembly Linker génère un fichier avec un manifeste d'assembly à partir d'un ou de plusieurs fichiers qui sont soit des modules, soit des fichiers de ressources. Un module est un fichier MSIL (Microsoft Intermediate Language) sans manifeste d'assembly.

al sources options

Paramètres

Vous pouvez spécifier une ou plusieurs des sources suivantes.

Source Description

file[,target]

Copie le contenu de file (un module) dans le nom de fichier spécifié par target. Après la copie, Al.exe compile target dans un assembly.

/embed[resource]:file[,name[,private]]

Incorpore la ressource spécifiée par file dans l'image qui contient le manifeste d'assembly ; Al.exe copie le contenu de file dans l'image PE (Portable Executable).

Le paramètre name est un identificateur interne de la ressource. Par défaut, les ressources sont publiques dans l'assembly (elles sont donc visibles aux autres assemblys). Si vous spécifiez private, la ressource n'est pas visible aux autres assemblys.

Si file est un fichier de ressources .NET Framework créé, par exemple, par l'outil Resource File Generator Tool (Resgen.exe) ou dans l'environnement de développement, il est possible d'y accéder à l'aide des membres de l'espace de noms System.Resources. Pour plus d'informations, consultez System.Resources.ResourceManager, classe. Pour toutes les autres ressources, utilisez les méthodes GetManifestResource* de la classe System.Reflection.Assembly pour accéder à la ressource au moment de l'exécution.

Si seuls les fichiers de ressources sont passés à Al.exe, le fichier de sortie est un assembly des ressources satellites.

/link[resource]:file[,name[,target[,private]]]

Lie un fichier de ressources à un assembly. La ressource spécifiée par file est intégrée à l'assembly ; le fichier n'est pas copié. Le paramètre file peut être dans n'importe quel format de fichier. Par exemple, vous pouvez spécifier une DLL native en tant que paramètre file. La DLL native de l'assembly pourra ainsi être installée dans le Global Assembly Cache et atteinte à partir du code managé dans l'assembly. Vous pouvez également faire ceci en utilisant l'option du compilateur /linkresource. Pour plus d'informations, consultez /linkresource (Lien vers une ressource du .NET Framework) (Options du compilateur C#).

Le paramètre name est un identificateur interne de la ressource. Le paramètre target spécifie un chemin d'accès et un nom de fichier dans lequel Al.exe copie le file. Après la copie, Al.exe compile target dans un assembly. Par défaut, les ressources sont publiques dans l'assembly (elles sont donc visibles aux autres assemblys). Si vous spécifiez private, la ressource n'est pas visible aux autres assemblys.

Si file est un fichier de ressources .NET Framework créé, par exemple, par le Générateur de fichiers de ressources (Resgen.exe) ou dans l'environnement de développement, il est possible d'y accéder à l'aide des membres de l'espace de noms System.Resources. Pour plus d'informations, consultez System.Resources.ResourceManager. Pour toutes les autres ressources, utilisez les méthodes GetManifestResource* dans la classe System.Reflection.Assembly pour accéder à la ressource au moment de l'exécution.

Si seuls les fichiers de ressources sont passés à Al.exe, le fichier de sortie est un assembly des ressources satellites.

Vous pouvez spécifier les options suivantes ; notez que vous devez spécifier /out.

Option Description

/algid:id

Spécifie un algorithme de hachage de tous les fichiers dans un assembly multifichier, à l'exception du fichier qui contient le manifeste d'assembly. L'algorithme par défaut est CALG_SHA1. Pour connaître les autres algorithmes, consultez ALG_ID dans la documentation du Kit de développement Platform SDK. Dans la première version du .NET Framework, seuls CALG_SHA1 et CALG_MD5 sont valides.

Les valeurs de hachage sont stockées dans la table de fichiers du manifeste d'assembly. Lors de l'installation et du chargement, les fichiers de l'assembly sont comparés à leurs hachages.

Vous pouvez également spécifier cette option comme attribut personnalisé (System.Reflection.AssemblyAlgorithmIdAttribute) dans le code source de tout module.

/base[address]:addr

Spécifie l'adresse de chargement d'une DLL sur l'ordinateur de l'utilisateur au moment de l'exécution. Le chargement des applications est plus rapide si vous spécifiez l'adresse de base des DLL, plutôt que de laisser le système d'exploitation réadresser les DLL dans l'espace de traitement.

/bugreport:filename

Crée un fichier (filename) qui contient des informations sur le signalement des bogues.

/comp[any]:text

Spécifie une chaîne pour le champ Société de l'assembly. Placez la chaîne entre guillemets (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly ; elle est disponible pour l'affichage avec réflexion.

Si vous ne spécifiez pas /win32res, text apparaît dans l'Explorateur Microsoft Windows comme la propriété Company pour le fichier. Si vous spécifiez /win32res, les informations sur la société dans le fichier de ressources spécifié apparaissent comme la propriété Company dans l'Explorateur Windows.

Si le texte est une chaîne vide (""), la ressource Company Win32 apparaît comme un espace unique.

Si vous spécifiez /win32res, /company n'aura pas d'effet sur les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (System.Reflection.AssemblyCompanyIdAttribute) dans le code source de n'importe quel module MSIL.

/config[uration]:text

Spécifie une chaîne pour le champ Configuration de l'assembly. Placez la chaîne entre guillemets (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly ; elle est disponible pour l'affichage avec réflexion.

Si le texte est une chaîne vide, la ressource Configuration Win32 apparaît comme un espace unique.

Vous pouvez également spécifier cette option comme attribut personnalisé (System.Reflection.AssemblyConfigurationAttribute) dans le code source de n'importe quel module MSIL.

/copy[right]:text

Spécifie une chaîne pour le champ Copyright de l'assembly. Placez la chaîne entre guillemets (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly ; elle est disponible pour l'affichage avec réflexion.

Si vous ne spécifiez pas /win32res, /copyright apparaît dans l'Explorateur Windows comme la ressource Win32 Copyright.

Si le texte est une chaîne vide, la ressource Copyright Win32 apparaît comme un espace unique.

Si vous spécifiez /win32res, /copyright n'aura pas d'effet sur les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (System.Reflection.AssemblyCopyrightAttribute) dans code source de n'importe quel module MSIL.

/c[ulture]:text

Spécifie la chaîne de culture à associer à l'assembly. Les valeurs valides pour les cultures sont définies dans le document RFC (Internet Requests for Comments) 1766 intitulé « Tags for the Identification of Languages ».

Placez la chaîne entre guillemets (" ") si text contient un espace. Il n'y a pas de chaîne de culture par défaut. Cette chaîne est disponible pour l'affichage avec réflexion.

Pour plus d'informations sur les chaînes de text valides, consultez le CultureInfo.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyCultureAttribute) dans le code source de n'importe quel module MSIL.

/delay[sign][+|-]

Spécifie si l'assembly sera complètement ou partiellement signé. Utilisez /delaysign- si vous souhaitez obtenir un assembly complètement signé. Utilisez /delaysign+ si vous souhaitez uniquement placer la clé publique dans l'assembly.

Lorsque vous demandez un assembly totalement signé, Al.exe hache le fichier qui contient le manifeste (métadonnées de l'assemblage) et signe ce hachage avec la clé privée. La signature numérique obtenue est stockée dans le fichier qui contient le manifeste. Pour un assembly avec temporisation de la signature, Al.exe ne calcule pas et ne stocke pas la signature, mais réserve de l'espace dans le fichier pour que la signature puisse être ajoutée par la suite.

La valeur par défaut est /delaysign-.

L'option /delaysign est sans effet sauf si elle est utilisée avec /keyfile ou /keyname.

Par exemple, l'utilisation de /delaysign+ permet à un testeur d'insérer l'assembly dans le cache global. Après le test, vous pouvez signer complètement l'assembly en y plaçant la clé privée.

Notes

Avant d'utiliser le Outil Global Assembly Cache Tool (Gacutil.exe) pour mettre un assembly dont la signature a été temporisée dans le cache global, utilisez le Outil Strong Name Tool (Sn.exe) pour enregistrer l'assembly afin que la vérification soit ignorée. Par exemple, Sn.exe –Vr delaySignedAssembly. Utilisez cela uniquement pour le développement.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyDelaySignAttribute) dans le code source de n'importe quel module MSIL.

/descr[iption]:text

Spécifie une chaîne pour le champ Description de l'assembly. Placez la chaîne entre guillemets (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly ; elle est disponible pour l'affichage avec réflexion.

Si vous ne spécifiez pas /win32res, /description apparaît dans l'Explorateur Windows comme la ressource Win32 Comments.

Si le texte est une chaîne vide, la ressource Comments Win32 apparaît comme un espace unique.

Si vous spécifiez /win32res, /description n'aura pas d'effet sur les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (Description) dans le code source de n'importe quel module MSIL.

/e[vidence]: file

Incorpore file dans l'assembly avec le nom de ressource Security.Evidence.

Vous ne pouvez pas utiliser Security.Evidence pour les ressources classiques.

/fileversion: version

Spécifie une chaîne pour le champ Version de fichier de l'assembly. Cette chaîne est un attribut personnalisé dans l'assembly ; elle est disponible pour l'affichage avec réflexion.

Si vous ne spécifiez pas /win32res, /fileversion sera utilisé comme la ressource File Version Win32. Si vous ne spécifiez pas /fileversion, la ressource File Version Win32 sera remplie par la ressource Assembly Version Win32.

Si /win32res est spécifié, /fileversion n'a pas d'effet sur la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyFileVersionAttribute) dans le code source de n'importe quel module MSIL.

/flags: flags

Spécifie une valeur pour le champ Indicateurs de l'assembly. Les valeurs possibles de flags sont les suivantes :

0x0000

L'assembly est compatible côte à côte.

0x0010

L'assembly ne peut pas s'exécuter avec d'autres versions si celles-ci s'exécutent dans le même domaine d'application.

0x0020

L'assembly ne peut pas s'exécuter avec d'autres versions si celles-ci s'exécutent dans le même processus.

0x0030

L'assembly ne peut pas s'exécuter avec d'autres versions si celles-ci s'exécutent sur le même ordinateur.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyFlagsAttribute) dans le code source de n'importe quel module MSIL.

/fullpaths

Force Al.exe à utiliser le chemin d'accès absolu de tout fichier signalé dans un message d'erreur.

/help

Affiche la syntaxe et les options de commande de l'outil.

/keyf[ile]: filename

Spécifie un fichier (filename) qui contient une paire de clés ou juste une clé publique pour signer un assembly. Le compilateur insère la clé publique dans le manifeste d'assembly, puis signe l'assembly final à l'aide de la clé privée. Pour plus d'informations sur la génération des fichiers de clés et l'installation des paires de clés dans les conteneurs de clé, consultez l'outil Strong Name Tool (Sn.exe).

Si vous utilisez la temporisation de signature, ce fichier aura en général la clé publique mais pas la clé privée.

Les informations de la clé publique (ou de la paire de clés) s'affichent dans le champ .publickey de l'assembly.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyKeyFileAttribute) dans le code source de n'importe quel module MSIL.

Si /keyfile et /keyname sont tous deux spécifiés (par option de ligne de commande ou par attribut personnalisé) dans la même compilation, Al.exe essaie d'abord le conteneur spécifié avec /keyname. Si cette tentative aboutit, l'assembly est signé avec les informations figurant dans le conteneur de clé. Si Al.exe ne trouve pas le conteneur de clé, il essaie le fichier spécifié avec /keyfile. En cas de réussite, l'assembly est signé avec les informations du fichier de clé et les informations sur la clé sont installées dans le conteneur de clé (semblable à l'option -i de Sn.exe) de sorte qu'à la compilation suivante, l'option /keyname soit valide.

/keyn[ame]: text

Spécifie un conteneur qui contient une paire de clés. Cela signe l'assembly (lui donne un nom fort) en insérant une clé publique dans le manifeste d'assembly. Al.exe signe ensuite l'assembly définitif à l'aide de la clé privée.

Utilisez Sn.exe pour générer une paire de clés.

Les informations sur les clés apparaissent dans le champ .publickey de l'assembly.

Met la chaîne entre guillemets (" ") si text contient un espace.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyKeyNameAttribute) dans le code source de n'importe quel module MSIL.

/main: method

Spécifie le nom complet (class.method) de la méthode à utiliser comme point d'entrée lors de la conversion d'un module en fichier exécutable.

/nologo

Supprime la bannière, ou le logo, affiché sur la ligne de commande lorsque vous appelez Al.exe.

/out: filename

Spécifie le nom du fichier créé par Al.exe. Cette option est requise.

/platform:text

Limite les plates-formes sur lesquelles ce code peut s'exécuter. Il peut s'agir des plates-formes suivantes : x86, Itanium, x64 ou anycpu (par défaut).

/prod[uct]: text

Spécifie une chaîne pour le champ Produit de l'assembly. Placez la chaîne entre guillemets (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly ; elle est disponible pour l'affichage avec réflexion.

Si vous ne spécifiez pas /win32res, /product apparaît dans l'Explorateur Windows comme la ressource Win32 Product Name.

Si le texte est une chaîne vide, la ressource Product Name Win32 apparaît comme un espace unique.

Si vous spécifiez /win32res, /product n'aura pas d'effet sur les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyProductAttribute) dans le code source de n'importe quel module MSIL.

/productv[ersion]: text

Spécifie une chaîne pour le champ Product Version de l'assembly. Placez la chaîne entre guillemets (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly ; elle est disponible pour l'affichage avec réflexion.

Si vous ne spécifiez pas /win32res, /productversion sera utilisé comme la ressource Product Version Win32. Si vous ne spécifiez pas /productversion, la ressource Product Version Win32 sera remplie par la ressource File Version Win32.

Si vous spécifiez /win32res, /productversion n'aura pas d'effet sur les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyInformationalVersionAttribute) dans le code source de n'importe quel module MSIL.

/t[arget]:lib[rary] | exe | win[exe]

Spécifie le format de fichier du fichier de sortie : lib[rary] (bibliothèque de codes), exe (application console) ou win[exe] (application Windows). La valeur par défaut est lib[rary].

/template: filename

Spécifie l'assembly, filename, à partir duquel hériter de toutes les métadonnées d'assembly, à l'exception du champ culture. Le filename spécifié doit avoir un nom fort.

Un assembly créé avec /template sera un assembly satellite.

/title: text

Spécifie une chaîne pour le champ Title de l'assembly. Placez la chaîne entre guillemets (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly ; elle est disponible pour l'affichage avec réflexion.

Si vous ne spécifiez pas /win32res, /title apparaît dans l'Explorateur Windows comme la ressource Description Win32, utilisée par le shell en tant que nom convivial d'une application. Il s'affiche également dans le sous-menu Ouvrir avec du menu contextuel pour un type de fichier pour lequel il existe plusieurs applications de support.

Si le texte est une chaîne vide, la ressource Description Win32 apparaît comme un espace unique.

Si vous spécifiez /win32res, /title n'aura pas d'effet sur les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyTitleAttribute) dans le code source de n'importe quel module MSIL.

/trade[mark]: text

Spécifie une chaîne pour le champ Marque déposée de l'assembly. Placez la chaîne entre guillemets (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly ; elle est disponible pour l'affichage avec réflexion.

Si vous ne spécifiez pas /win32res, /trademark apparaît dans l'Explorateur Windows comme la ressource Win32 Marque déposée.

Si le texte est une chaîne vide, la ressource Trademark Win32 apparaît comme un espace unique.

Si vous spécifiez /win32res, /trademark n'aura pas d'effet sur les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyTrademarkAttribute) dans le code source de n'importe quel module MSIL.

/v[ersion]: version

Spécifie les informations de version concernant cet assembly. Le format de la chaîne version est major.minor.build.revision. La valeur par défaut est 0.

Si vous spécifiez /version, vous devez spécifier major. Si vous spécifiez major et minor, vous pouvez spécifier un astérisque (*) pour build. build est alors égal au nombre de jours écoulés depuis le 1er janvier 2000, heure locale, tandis que revision est égal au nombre de secondes écoulées depuis le 1er janvier 2000, heure locale, divisé par 2.

Si vous spécifiez major, minoret build, vous pouvez spécifier un astérisque pour revision. revision est égal au nombre de secondes écoulées depuis le 1er janvier 2000 à minuit (heure locale), divisé par 2.

En résumé, les chaînes de version valides sont les suivantes :

X

X.X

X.X.*

X.X.X

X.X.X.*

X.X.X.X

où X est une constante abrégée non signée, à l'exception de 65 535 (0-65 534).

Si vous ne spécifiez pas /win32res, /version sera utilisé comme la ressource Assembly Version Win32.

Si vous ne spécifiez pas /win32res, /productversionet /fileversion, /version seront utilisés pour les ressources Assembly Version, File Version et Product Version Win32.

Si vous spécifiez /win32res, /version n'aura pas d'effet sur les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyVersionAttribute) dans le code source de n'importe quel module MSIL.

/win32icon: filename

Insère un fichier .ico dans l'assembly. Le fichier .ico donne au fichier de sortie l'aspect souhaité dans l'Explorateur Windows.

/win32res: filename

Insère une ressource Win32 (fichier .res) dans le fichier de sortie. Un fichier de ressources Win32 peut être créé à l'aide du compilateur de ressources. Le compilateur de ressources est appelé lorsque vous compilez un programme Visual C++ ; un fichier .res est alors créé à partir du fichier .rc.

@filename

Spécifie un fichier réponse qui contient les commandes Al.exe.

Les commandes du fichier réponse peuvent apparaître chacune sur une ligne ou sur la même ligne, séparées par un ou plusieurs espaces.

/?

Affiche la syntaxe et les options de commande de l'outil.

Notes

Tous les compilateurs Visual Studio génèrent des assemblys. Si, toutefois, vous disposez d'un ou de plusieurs modules (métadonnées sans manifeste), vous pouvez utiliser Al.exe pour créer un assembly avec le manifeste dans un fichier séparé.

Pour installer des assemblys dans le cache, supprimer des assemblys du cache ou répertorier le contenu du cache, utilisez l'outil Global Assembly Cache Tool (Gacutil.exe).

Exemple

La commande suivante crée un fichier exécutable t2a.exe avec un assembly dans le module t2.netmodule. Le point d'entrée est la méthode Main dans MyClass.

al t2.netmodule /target:exe /out:t2a.exe /main:MyClass.Main

Voir aussi

Référence

Outils du .NET Framework
Erreurs et avertissements de l'outil Al.exe (Al.exe Tool Errors and Warnings)
Outil Strong Name Tool (Sn.exe)
Outil Global Assembly Cache Tool (Gacutil.exe)
Invite de commandes du Kit de développement SDK

Autres ressources

Programmation à l'aide d'assemblys