Mt.exe

Die Mt.exe-Datei ist ein Tool, das signierte Dateien und Kataloge generiert. Sie 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 andere Hashschemas verwenden können.

Mt.exe verwendet Makecat.exe, um Katalogdateien (CAT) aus Katalogdefinitionsdateien (CDF) zu generieren. Dieses Tool füllt eine CdF-Standardvorlage mit dem Namen und 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 aktuellen 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, bei der die Groß-/Kleinschreibung nicht beachtet wird.

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, -outputresourceoder -updateresource an. Die folgende Befehlszeile fordert beispielsweise einen Vorgang an, bei dem zwei Manifeste, man1.manifest und man2.manifest, in einem neuen Manifest, man3.manifest, zusammengeführt werden.

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

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

-identity

Stellt die Attributwerte des assemblyIdentity-Elements des Manifests bereit. Das Argument der Option -identity ist ein Zeichenfolgenwert, der die Attributwerte in Durch Kommas getrennten Feldern enthält. Geben Sie den Wert des Name-Attributs im ersten Feld an, ohne eine Teilzeichenfolge "name=" anzugeben. Alle verbleibenden Felder geben die Attribute und ihre Werte mithilfe des folgenden 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 für 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

-replacements

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. Verwenden Sie mit der Option -nodependency, um ein Manifest ohne Abhängigkeitselemente zu generieren. Verwenden Sie mit der Option -category, um ein Manifest mit Kategorietags zu generieren. Wenn managed.dll beispielsweise eine verwaltete Assembly ist, generiert die folgende Befehlszeile 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 out.manifest aus managed.dll ohne Abhängigkeitsinformationen.

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

-category

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 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 zu verhindern, dass unerwünschte Informationen in die Protokolldateien geschrieben werden.

-out

Gibt den Namen des aktualisierten Manifests an. Wenn es sich um einen Vorgang mit nur einem Manifest handelt und die Option -out ausgelassen wird, wird das ursprüngliche Manifest geändert.

-inputresource

Gibt einen Vorgang an, der für ein Manifest ausgeführt wird, das von einer Ressource vom Typ RT_MANIFEST abgerufen wurde. Wenn die Option -inputresource verwendet wird, ohne den Ressourcenbezeichner < anzugeben, 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 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 Namen der DLL-Datei 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 wird. Wenn die Option -outputresource verwendet wird, ohne den Ressourcenbezeichner < anzugeben, 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 unter dem angegebenen Pfad berechnet und das Manifest einer Ressource einer portierbaren ausführbaren Datei (PORTABLE EXECUTABLE, PE) aktualisiert.

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

-hashupdate

Berechnet den Hashwert der Dateien an den angegebenen Pfaden und aktualisiert den Wert des Hashattributs des File-Elements mit diesem Wert.

Der folgende Befehl fordert beispielsweise einen Vorgang an, bei dem zwei Manifestdateien , man1.manifest und man2.manifest, zusammengeführt werden, und aktualisiert den Wert des Hashattributs des File-Elements im Manifest, das die zusammengeführten Informationen empfängt, merged.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 Manifests, das für den Empfang des Updates angegeben ist. 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 Syntaxprüfung der Konformität des Manifests mit dem Manifestschema ausführt. Der folgende Befehl fordert beispielsweise 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 File-Elemente des Manifests überprüft. Der folgende Befehl fordert beispielsweise einen Vorgang an, der die Hashwerte aller File-Elemente von man1.manifest überprüft.

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

-canonicalize

Gibt einen Vorgang zum Aktualisieren des Manifests in eine kanonische Form an. Der folgende Befehl aktualisiert z. B. man1.manifest in kanonische Form.

mt.exe -manifest man1.manifest

-check_for_duplicates

Gibt einen Vorgang an, der das Manifest auf doppelte Elemente überprüft. Der folgende Befehl überprüft beispielsweise man1.manifest auf doppelte Elemente.

mt.exe -man1.manifest -check_for_duplicates

-makecdfs

Generiert CDF-Dateien, um Kataloge zu erstellen. Mit dem folgenden Befehl wird beispielsweise ein Vorgang angefordert, 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 wird, zeigt Mt.exe Hilfetext an.

Entwicklungstools für die side-by-Side-Assembly