Partager via


Assembly Linker (Al.exe)

Mise à jour : novembre 2007

Assembly Linker génère un fichier doté d'un manifeste d'assembly provenant 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.

Remarque :

Pour éviter d'être soumis à la virtualisation sur un ordinateur Windows Vista, votre assembly doit inclure un manifeste win32 qui spécifie un niveau d'exécution demandé. Lorsque vous utilisez al.exe directement à partir de la ligne de commande, vous pouvez incorporer le manifeste dans un fichier de ressources win32 ou utiliser mt.exe pour ajouter le manifeste à un stade ultérieur du processus de génération. Dans Visual Studio 2008, les deux compilateurs C# et Visual Basic incorporent automatiquement un manifeste win32 dans l'assembly. Pour plus d'informations, consultez /win32manifest (Importer un fichier manifeste Win32 personnalisé) (Options du compilateur C#).

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 du .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 System.Resources. Pour plus d'informations, consultez ResourceManager. Pour toutes les autres ressources, utilisez les méthodes GetManifestResource* dans 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 targetspé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 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 ResourceManager. Pour toutes les autres ressources, utilisez les méthodes GetManifestResource* dans la classe 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 ci-dessous ; 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é (AssemblyAlgorithmIdAttribute) dans le code source de n'importe quel 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 au lieu de laisser le système d'exploitation réadresser les DLL dans l'espace de processus.

/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'affectera pas les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyCompanyAttribute) 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é (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'affectera pas les informations de la ressource Win32.

Vous pouvez également spécifier cette option comme attribut personnalisé (AssemblyCopyrightAttribute) dans le 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 text valides, consultez 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 inclure 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'assembly) 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 incluant la clé privée.

Remarque :

Avant d'utiliser l'Outil Global Assembly Cache Tool (Gacutil.exe) pour mettre un assembly dont la signature a été temporisée dans le cache global, utilisez l'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'affectera pas 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 standard.

/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'affecte pas 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 Flags de l'assembly. Valeurs possibles pour flags :

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. Consultez Outil Strong Name Tool (Sn.exe), 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é.

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 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 réussit, 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 plateformes sur lesquelles ce code peut s'exécuter. Il peut s'agir des plateformes 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 Nom du produit.

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

Si vous spécifiez /win32res, /product n'affectera pas 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 Version du produit de l'assembly. Placez la chaîne entre guillemets doubles (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly et elle est disponible pour l'affichage avec réflexion.

Si vous ne spécifiez pas /win32res, /productversion sera utilisé comme ressource Win32 Version du produit. Si vous ne spécifiez pas /productversion, la ressource Win32 Version du produit sera remplie par la ressource Win32 Version de fichier.

Si vous spécifiez /win32res, /productversion n'affectera pas 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.

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

/title:text

Spécifie une chaîne pour le champ Titre de l'assembly. Placez la chaîne entre guillemets doubles (" ") si text contient un espace. Cette chaîne est un attribut personnalisé dans l'assembly et 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 Win32 Description, qui est utilisée par le shell comme 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 Win32 Description apparaît comme un espace unique.

Si vous spécifiez /win32res, /title n'affectera pas 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'affectera pas 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 ressource Win32 Version de l'assembly.

Si vous ne spécifiez pas /win32res, /productversion ni /fileversion, /version sera utilisé pour les ressources Win32 Version de l'assembly, Version de fichier et Version du produit.

Si vous spécifiez /win32res, /version n'affectera pas 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