Mt.exe

Die datei Mt.exe ist ein Tool, das signierte Dateien und Kataloge generiert. Es ist im Microsoft Windows Software Development Kit (SDK) verfügbar. Mt.exe erfordert, dass die datei, auf die im Manifest verwiesen wird, im gleichen Verzeichnis wie das Manifest vorhanden ist.

Mt.exe generiert Hashes mithilfe der CryptoAPI-Implementierung des Secure Hash Algorithm (SHA-1). Weitere Informationen zu Hashalgorithmen finden Sie unter Hash- und Signaturalgorithmen. Hashes werden als hexadezimale Zeichenfolge in die Dateitags im Manifest eingefügt. Das Tool generiert derzeit nur SHA-1-Hashes, obwohl Dateien in Manifesten möglicherweise andere Hashschemas verwenden.

Mt.exe verwendet Makecat.exe zum Generieren von Katalogdateien (CAT) aus Katalogdefinitionsdateien (CDF). Dieses Tool füllt ein Standardvorlagen-CDF mit dem Namen und dem Speicherort Ihres Manifests aus. Sie können dies mit Makecat.exe verwenden, um den Assemblykatalog zu generieren.

Die Version von Mt.exe, die in den letzten Versionen des Windows SDK bereitgestellt wird, kann auch verwendet werden, um Manifeste für verwaltete Assemblys und nicht verwaltete parallele Assemblys zu generieren.

Syntax

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]

Befehlszeilenoptionen

Mt.exe verwendet die folgenden Befehlszeilenoptionen für die Groß-/Kleinschreibung.

Option Beschreibung
-manifest

Gibt den Namen der Manifestdatei an. Um ein einzelnes Manifest zu ändern, geben Sie einen Manifestdateinamen an. Beispiel: component.manifest.

Um mehrere Manifeste zusammenzuführen, geben Sie hier die Namen der Quellmanifeste an. Geben Sie den Namen des aktualisierten Manifests mit den Optionen "-out", " -outputresource" oder "-updateresource " an. Die folgende Befehlszeile fordert beispielsweise einen Vorgang an, der zwei Manifeste, man1.manifest und man2.manifest, in ein neues Manifest, man3.manifest, zusammenführt.

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

Kein Doppelpunkt (:) ist mit der Option "-manifest " erforderlich.

-Identität

Stellt die Attributewerte des assemblyIdentity-Elements des Manifests bereit. Das Argument der Option "-Identity " ist ein Zeichenfolgenwert, der die Attributwerte in Feldern enthält, die durch Kommas getrennt sind. Geben Sie den Wert des Namensattributes im ersten Feld an, ohne eine Teilzeichenfolge "name=" einzurechnen. Alle verbleibenden Felder geben die Attribute und deren Werte mithilfe des Formulars an: <Attributname>=<attribute_value>.

So aktualisieren Sie beispielsweise das assemblyIdentity-Element des Manifests mit den folgenden Informationen:

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

schließen Sie die folgende Option "-Identity " in die Befehlszeile ein:

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

-rgs

Gibt den Namen der Registrierungsskriptdatei (.rgs) an. Die Option "-dll " ist erforderlich, um die Option "-rgs " zu verwenden.

-tlb

Gibt den Namen der Typbibliotheksdatei (.tlb) an. Die Option "-dll " ist erforderlich, um die Option "-tlb " zu verwenden.

-dll

Gibt den Namen der DLL-Datei (Dynamic Link Library) an. Die Option "-dll " ist von mt.exe erforderlich, wenn die Optionen "-rgs " oder "-tlb " verwendet werden. Geben Sie den Namen der DLL an, die Sie schließlich aus den .rgs- oder TLB-Dateien erstellen möchten.

Der folgende Befehl fordert beispielsweise einen Vorgang an, der ein Manifest aus .rgs- und TLB-Dateien generiert.

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

-Ersetzungen

Gibt die Datei an, die Werte für die ersetzende Zeichenfolge in der rgs-Datei enthält.

-managedassemblyname

Generiert ein Manifest aus der angegebenen verwalteten Assembly. Verwenden Sie die Option "-nodependency" , um ein Manifest ohne Abhängigkeitselemente zu generieren. Verwenden Sie die Option "-category ", um ein Manifest mit Kategorietags zu generieren. Wenn managed.dll beispielsweise eine verwaltete Assembly ist, generiert die folgende Befehlszeile das out.manifest aus managed.dll.

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

-nodependency

Gibt einen Vorgang an, der ein Manifest ohne Abhängigkeitselemente generiert. Die Option "-nodependency " erfordert die Option "-managedassemblyname ". Wenn managed.dll beispielsweise eine verwaltete Assembly ist, generiert die folgende Befehlszeile das out.manifest aus managed.dll ohne Abhängigkeitsinformationen.

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

-Kategorie

Gibt einen Vorgang an, der ein Manifest mit Kategorietags generiert. Die Option "-category " erfordert die Option "-managedassemblyname ". Wenn managed.dll beispielsweise eine verwaltete Assembly ist, generiert die folgende Befehlszeile das out.manifest aus managed.dll mit Kategorietags.

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

-nologo

Gibt einen Vorgang an, der ausgeführt wird, ohne standardmäßige Microsoft-Copyrightdaten anzuzeigen. Wenn mt.exe als Teil eines Buildprozesses ausgeführt wird, kann diese Option verwendet werden, um das Schreiben unerwünschter Informationen in die Protokolldateien zu verhindern.

-out

Gibt den Namen des aktualisierten Manifests an. Wenn dies ein einzelmanifester Vorgang ist, und die Option "-out " nicht angegeben wird, wird das ursprüngliche Manifest geändert.

-inputresource

Gibt einen Vorgang an, der auf einem Manifest ausgeführt wird, das von einer Ressource vom Typ RT_MANIFEST abgerufen wird. Wenn die Option "-inputresource " ohne Angabe des Ressourcenbezeichners verwendet wird, <resource_id>, verwendet der Vorgang den Wert CREATEPROCESS_MANIFEST_RESOURCE.

Der folgende Befehl fordert beispielsweise einen Vorgang an, der ein Manifest aus einer DLL, dll_with_manifest.dll und einer Manifestdatei, man2.manifest, zusammenführt. Die zusammengeführten Manifeste werden von einem Manifest in der Ressourcendatei einer anderen DLL dll_with_merged_manifests empfangen.

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

Um das Manifest aus einer DLL zu extrahieren, geben Sie den DLL-Dateinamen an. Der folgende Befehl extrahiert beispielsweise das Manifest aus lib1.dll und man3.manifest empfängt das extrahierte Manifest.

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

-outputresource

Gibt einen Vorgang an, der ein Manifest generiert, das von einer Ressource vom Typ RT_MANIFEST empfangen wird. Wenn die Option "-outputresource " ohne Angabe des Ressourcenbezeichners verwendet wird, <resource_id>, verwendet der Vorgang den Wert CREATEPROCESS_MANIFEST_RESOURCE.

-updateresource

Gibt einen Vorgang an, der der Verwendung der Optionen "-inputresource " und "-outputresource " mit identischen Argumenten entspricht. Der folgende Befehl fordert beispielsweise einen Vorgang an, der einen Hash der Dateien im angegebenen Pfad berechnet und das Manifest einer Ressource einer portablen ausführbaren Datei (PE) aktualisiert.

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

-hashupdate

Berechnet den Hashwert der Dateien in den angegebenen Pfaden und aktualisiert den Wert des Hash-Attributs des File-Elements mit diesem Wert.

Der folgende Befehl fordert beispielsweise einen Vorgang an, der zwei Manifestdateien, man1.manifest und man2.manifest zusammenführt, und aktualisiert den Wert des Hash-Attributs des File-Elements im Manifest, das die zusammengeführten Informationen empfängt, merge.manifest.

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

Wenn die Pfade zu den Dateien nicht angegeben werden, sucht der Vorgangsspeicherort des manifests, das angegeben wurde, um das Update zu erhalten. Der folgende Befehl fordert beispielsweise einen Vorgang an, der den aktualisierten Hashwert mithilfe von Dateien berechnet, die durch Durchsuchen des Speicherorts von updated.manifest gefunden wurden.

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

-validate_manifest

Gibt einen Vorgang an, der eine Syntaxüberprüfung der Übereinstimmung des Manifests mit dem Manifestschema ausführt. Beispielsweise fordert der folgende Befehl eine Überprüfung an, um die Übereinstimmung von man1.manifest mit seinem Schema zu überprüfen.

mt.exe -manifest man1.manifest -validate_manifest

-validate_file_hashes

Gibt einen Vorgang an, der die Hashwerte der Dateielemente des Manifests überprüft. Der folgende Befehl fordert beispielsweise einen Vorgang an, der die Hashwerte aller Dateielemente des man1.manifest überprüft.

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

-kanonischisieren

Gibt einen Vorgang an, um das Manifest auf kanonische Form zu aktualisieren. Der folgende Befehl aktualisiert z. B. man1.manifest auf kanonische Form.

mt.exe -manifest man1.manifest

-check_for_duplicates

Gibt einen Vorgang an, der das Manifest für doppelte Elemente überprüft. Beispielsweise überprüft der folgende Befehl man1.manifest für doppelte Elemente.

mt.exe -man1.manifest -check_for_duplicates

-makecdfs

Generiert CDF-Dateien, um Kataloge zu erstellen. Beispielsweise fordert der folgende Befehl einen Vorgang an, der den Hashwert aktualisiert und eine CDF-Datei generiert.

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

-verbose Zeigt ausführliche Debuginformationen an.
-? Wenn Sie mit -?, oder ohne Optionen und Argumente ausgeführt werden, zeigt Mt.exe Hilfetext an.

Side-by-Side Assembly Development Tools