Freigeben über


Mt.exe

Die Mt.exe Datei 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 im Manifest referenzierte Datei im selben 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 Datei Tags 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 Speicherort Ihres Manifests aus. Sie können dies mit Makecat.exe verwenden, um den Assemblykatalog zu generieren.

Die in den letzten Versionen des Windows SDK bereitgestellte Version von Mt.exe 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 entweder mit den Optionen -out, -outputresourceoder -updateresource an. Beispielsweise fordert die folgende Befehlszeile 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 option ist ein Zeichenfolgenwert, der die Attributwerte in Feldern enthält, die durch Kommas getrennt sind. Geben Sie den Wert des Namens Attributs im ersten Feld an, ohne eine Teilzeichenfolge "name=" einzuschliessen. Alle verbleibenden Felder geben die Attribute und deren Werte mithilfe des Formulars an: <Attributname>=<attribute_value>.

Um beispielsweise das assemblyIdentity Element des Manifests mit den folgenden Informationen zu aktualisieren:

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

fügen 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 erforderlich mt.exe , 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

-Ersatz

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

-managedassemblyname

Generiert ein Manifest aus der angegebenen verwalteten Assembly. Wird mit der Option -nodependency zum Generieren eines Manifests ohne Abhängigkeitselemente verwendet. Wird mit der Option -category verwendet, 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. Für die Option -category- ist die Option -managedassemblyname erforderlich. 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.

-aus

Gibt den Namen des aktualisierten Manifests an. Wenn dies ein Einzelmanifestvorgang ist und die option -out weggelassen wird, wird das ursprüngliche Manifest geändert.

-inputresource

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

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

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. Beispielsweise extrahiert der folgende Befehl 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 werden soll. Wenn die Option -outputresource ohne Angabe des Ressourcenbezeichners verwendet wird, verwendet <resource_id>der Vorgang den Wert CREATEPROCESS_MANIFEST_RESOURCE.

-updateresource

Gibt einen Vorgang an, der der Verwendung der -inputresource und -outputresource Optionen 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 z. B. 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 sind, durchsucht der Vorgang den Speicherort des angegebenen Manifests, um das Update zu erhalten. Der folgende Befehl fordert z. B. 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 Konformität des Manifests mit dem Manifestschema durchführt. Der folgende Befehl fordert z. B. eine Überprüfung an, um die Konformität 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 File-Elemente des Manifests überprüft. Der folgende Befehl fordert beispielsweise einen Vorgang an, der die Hashwerte aller File- Elemente des man1.manifest überprüft.

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

-kanonischisieren

Gibt einen Vorgang an, der das Manifest auf kanonische Form aktualisiert. Beispielsweise aktualisiert der folgende Befehl man1.manifest auf kanonische Form.

mt.exe -manifest man1.manifest

-check_for_duplicates

Gibt einen Vorgang an, der das Manifest auf doppelte Elemente überprüft. Mit dem folgenden Befehl wird beispielsweise "man1.manifest" auf doppelte Elemente überprüft.

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

-wortreich Zeigt ausführliche Debuginformationen an.
-? Wenn sie mit -?, oder ohne Optionen und Argumente ausgeführt wird, zeigt Mt.exe Hilfetext an.

Entwicklungstools für parallele Assemblys