Mt.exe

Le fichier Mt.exe est un outil qui génère des fichiers signés et des catalogues. Il est disponible dans le Kit de développement logiciel (SDK) Microsoft Windows. Mt.exe exige que le fichier référencé dans le manifeste soit présent dans le même répertoire que le manifeste.

Mt.exe génère des hachages à l’aide de l’implémentation CryptoAPI de l’algorithme de hachage sécurisé (SHA-1). Pour plus d’informations sur les algorithmes de hachage, consultez Algorithmes de hachage et de signature. Les hachages sont insérés sous forme de chaîne hexadécimale dans les balises de fichier dans le manifeste. L’outil génère actuellement uniquement des hachages SHA-1, bien que les fichiers dans les manifestes puissent utiliser d’autres schémas de hachage.

Mt.exe utilise Makecat.exe pour générer des fichiers catalogue (.cat) à partir de fichiers de définition de catalogue (.cdf). Cet outil remplit un modèle standard CDF avec le nom et l’emplacement de votre manifeste. Vous pouvez l’utiliser avec Makecat.exe pour générer le catalogue d’assemblys.

La version de Mt.exe fournie dans les versions récentes du Kit de développement logiciel (SDK) Windows peut également être utilisée pour générer des manifestes pour les assemblys managés et les assemblys côte à côte non managés.

Syntaxe

mt.exe [-manifest:<component1.manifest><component2.manifest>] [-identity:<identity string>] 
[-rgs:<file1.rgs>] [-tlb:<file2.tlb>] [-dll:<file3.dll>] [-replacements:<XML filename>]
[-managedassemblyname:<managed assembly>] [-nodependency] [-category] [-out:<output manifest name>]
[-inputresource:<file4>;[#]<resource_id>] [-outputresource:<file5>;[#]<resource_id>] 
[-updateresource:<file6>;[#]<resource_id>] [-hashupdate[:<path to files>]] [-makecdfs] [-validate_manifest]
[-validate_file_hashes:<path to files>] [-canonicalize] [-check_for_duplicates] [-nologo] [-verbose]

Options de la ligne de commande

Mt.exe utilise les options de ligne de commande qui ne respectent pas la casse suivantes.

Option Description
-Manifeste

Spécifie le nom du fichier manifeste. Pour modifier un seul manifeste, spécifiez un nom de fichier manifeste. Par exemple, component.manifest.

Pour fusionner plusieurs manifestes, spécifiez ici les noms des manifestes sources. Spécifiez le nom du manifeste mis à jour avec les options -out, -outputresource ou -updateresource . Par exemple, la ligne de commande suivante demande une opération qui fusionne deux manifestes, man1.manifest et man2.manifest, dans un nouveau manifeste, man3.manifest.

mt.exe -manifest man1.manifest man2.manifest -out:man3.manifest

Aucun signe deux-points (:) est obligatoire avec l’option -manifest .

-Identité

Fournit les valeurs d’attributs de l’élément assemblyIdentity du manifeste. L’argument de l’option -identity est une valeur de chaîne contenant les valeurs d’attribut dans les champs séparés par des virgules. Indiquez la valeur de l’attribut name dans le premier champ, sans inclure de sous-chaîne « name= ». Tous les champs restants spécifient les attributs et leurs valeurs à l’aide de la forme : <nom> de l’attribut=<attribute_value>.

Par exemple, pour mettre à jour l’élément assemblyIdentity du manifeste avec les informations suivantes :

<assemblyIdentity type="win32 » name="Microsoft.Windows.SampleAssembly » version="6.0.0.0 » processorArchitecture="x86 » publicKeyToken="a5aaf5ba15723d5"/>

incluez l’option -identity suivante sur la ligne de commande :

-identity:"Microsoft.Windows.SampleAssembly, processorArchitecture=x86, version=6.0.0.0, type=win32, publicKeyToken=a5aaf5ba15723d5 »

-Rgs

Spécifie le nom du fichier de script d’inscription (.rgs). L’option -dll est requise pour utiliser l’option -rgs .

-Tlb

Spécifie le nom du fichier de bibliothèque de types (.tlb). L’option -dll est requise pour utiliser l’option -tlb .

-dll

Spécifie le nom du fichier de bibliothèque de liens dynamiques (DLL). L’option -dll est requise par mt.exe si les options -rgs ou -tlb sont utilisées. Spécifiez le nom de la DLL que vous envisagez de générer à terme à partir des fichiers .rgs ou .tlb.

Par exemple, la commande suivante demande une opération qui génère un manifeste à partir de fichiers .rgs et .tlb.

mt.exe -rgs:testreg1.rgs -tlb:testlib1.tlb -dll:test.dll -replacements:rep.manifest -identity:"Microsoft.Windows.SampleAssembly, processorArchitecture=x86, version=6.0.0.0, type=win32, publicKeyToken=a5aaf5ba15723d5 » -out:rgstlb.manifest

-Remplacements

Spécifie le fichier qui contient les valeurs de la chaîne remplaçable dans le fichier .rgs.

-managedassemblyname

Génère un manifeste à partir de l’assembly managé spécifié. Utilisez avec l’option -nodependency pour générer un manifeste sans éléments de dépendance. Utilisez avec l’option -category pour générer un manifeste avec des balises de catégorie. Par exemple, si managed.dll est un assembly managé, la ligne de commande suivante génère le fichier out.manifest à partir de managed.dll.

mt.exe -managedassemblyname:managed.dll -out:out.manifest

-nodependency

Spécifie une opération qui génère un manifeste sans éléments de dépendance. L’option -nodependency nécessite l’option -managedassemblyname . Par exemple, si managed.dll est un assembly managé, la ligne de commande suivante génère le fichier out.manifest à partir de managed.dll sans informations de dépendance.

mt.exe -managedassemblyname:managed.dll -out:out.manifest -nodependency

-Catégorie

Spécifie une opération qui génère un manifeste avec des balises de catégorie. L’option -category nécessite l’option -managedassemblyname. Par exemple, si managed.dll est un assembly managé, la ligne de commande suivante génère le fichier out.manifest à partir de managed.dll avec des balises de catégorie.

mt.exe -managedassemblyname:managed.dll -out:out.manifest -category

-nologo

Spécifie une opération qui est exécutée sans afficher les données de copyright Microsoft standard. Si mt.exe s’exécute dans le cadre d’un processus de génération, cette option peut être utilisée pour empêcher l’écriture d’informations indésirables dans les fichiers journaux.

-out

Spécifie le nom du manifeste mis à jour. S’il s’agit d’une opération à manifeste unique et que l’option -out est omise, le manifeste d’origine est modifié.

-inputresource

Spécifie une opération effectuée sur un manifeste obtenu à partir d’une ressource de type RT_MANIFEST. Si l’option -inputresource est utilisée sans spécifier l’identificateur de ressource, <resource_id>, l’opération utilise la valeur CREATEPROCESS_MANIFEST_RESOURCE.

Par exemple, la commande suivante demande une opération qui fusionne un manifeste à partir d’une DLL, d’une dll_with_manifest.dll et d’un fichier manifeste, man2.manifest. Les manifestes fusionnés sont reçus par un manifeste dans le fichier de ressources d’une autre DLL, dll_with_merged_manifests.

mt.exe -inputresource:dll_with_manifest.dll;#1 -manifest man2.manifest -outputresource:dll_with_merged_manifest.dll;#3

Pour extraire le manifeste d’une DLL, spécifiez le nom du fichier DLL. Par exemple, la commande suivante extrait le manifeste de lib1.dll et man3.manifest reçoit le manifeste extrait.

mt.exe -inputresource:lib.dll;#1 -out:man3.manifest

-outputresource

Spécifie une opération qui génère un manifeste à recevoir par une ressource de type RT_MANIFEST. Si l’option -outputresource est utilisée sans spécifier l’identificateur de ressource, <resource_id>, l’opération utilise la valeur CREATEPROCESS_MANIFEST_RESOURCE.

-updateresource

Spécifie une opération équivalente à l’utilisation des options -inputresource et -outputresource avec des arguments identiques. Par exemple, la commande suivante demande une opération qui calcule un hachage des fichiers au chemin spécifié et met à jour le manifeste d’une ressource d’un exécutable portable (PE).

mt.exe -updateresource:dll_with_manifest.dll;#1 -hashupdate:f:\files.

-hashupdate

Calcule la valeur de hachage des fichiers aux chemins spécifiés et met à jour la valeur de l’attribut de hachage de l’élément File avec cette valeur.

Par exemple, la commande suivante demande une opération qui fusionne deux fichiers manifestes, man1.manifest et man2.manifest, et met à jour la valeur de l’attribut de hachage de l’élément File dans le manifeste qui reçoit les informations fusionnées, merged.manifest.

mt.exe -manifest man1.manifest man2.manifest -hashupdate:d:\filerepository -out:merged.manifest

Si les chemins d’accès aux fichiers ne sont pas spécifiés, l’opération recherche l’emplacement du manifeste spécifié pour recevoir la mise à jour. Par exemple, la commande suivante demande une opération qui calcule la valeur de hachage mise à jour à l’aide de fichiers trouvés en recherchant l’emplacement de updated.manifest.

mt.exe -manifest yourComponent.manifest -hashupdate -out:updated.manifest

-validate_manifest

Spécifie une opération qui effectue une syntaxe case activée de la conformité du manifeste avec le schéma du manifeste. Par exemple, la commande suivante demande à un case activée de valider la conformité de man1.manifest avec son schéma.

mt.exe -manifest man1.manifest -validate_manifest

-validate_file_hashes

Spécifie une opération qui valide les valeurs de hachage des éléments File du manifeste. Par exemple, la commande suivante demande une opération qui valide les valeurs de hachage de tous les éléments File du man1.manifest.

mt.exe -manifest man1.manifest -validate_file_hashes:"c;\files »

-canonicalize

Spécifie une opération pour mettre à jour le manifeste sous forme canonique. Par exemple, la commande suivante met à jour man1.manifest sous forme canonique.

mt.exe -manifest man1.manifest

-check_for_duplicates

Spécifie une opération qui vérifie la présence d’éléments dupliqués dans le manifeste. Par exemple, la commande suivante vérifie man1.manifest pour les éléments en double.

mt.exe -man1.manifest -check_for_duplicates

-makecdfs

Génère des fichiers .cdf pour créer des catalogues. Par exemple, à la commande suivante demande une opération qui met à jour la valeur de hachage et génère un fichier .cdf.

mt.exe -manifest comp1.manifest -hashupdate -makecdfs -out:updated.manifest

-verbose Affiche des informations de débogage détaillées.
-? En cas d’exécution avec -?, ou sans options ni arguments, Mt.exe affiche le texte d’aide.

Outils de développement d’assembly côte à côte