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 Datei, auf die im Manifest verwiesen wird, 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 Dateitags im Manifest eingefügt. Das Tool generiert derzeit nur SHA-1-Hashes, obwohl Dateien in Manifesten möglicherweise andere Hashingschemas verwenden können.

Mt.exe verwendet Makecat.exe, um Katalogdateien (.cat) aus Katalogdefinitionsdateien (CDF) zu generieren. 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 Version von Mt.exe, die in aktuellen Versionen des Windows SDK bereitgestellt wurde, 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 ohne Berücksichtigung der 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, -outputresource oder -updateresource an. Die folgende Befehlszeile fordert beispielsweise einen Vorgang an, der zwei Manifeste, man1.manifest und man2.manifest, in einem neuen Manifest, man3.manifest, zusammenführt.

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

Kein Doppelpunkt (:) ist für die 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 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 deren Werte mithilfe des Formulars an: <attribute name>=<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"/>

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 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

-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. 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 die 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 die 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 beispielsweise managed.dll eine verwaltete Assembly ist, generiert die folgende Befehlszeile die 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 Einzelmanifestvorgang 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 ohne Angabe des Ressourcenbezeichners <>resource_id verwendet wird, 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 der 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 <>resource_id verwendet wird, 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 am angegebenen Pfad berechnet und das Manifest einer Ressource einer portablen 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 Hash-Attributs des File-Elements mit diesem Wert.

Der folgende Befehl fordert beispielsweise einen Vorgang an, der die beiden Manifestdateien man1.manifest und man2.manifest zusammenführt und den Wert des Hash-Attributs des File-Elements im Manifest aktualisiert, 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 angegebenen Manifests, um das Update zu erhalten. Der folgende Befehl fordert z. B. einen Vorgang an, der den aktualisierten Hashwert anhand von Dateien berechnet, die beim 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 durchführt. Der folgende Befehl fordert beispielsweise 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 von man1.manifest überprüft.

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

-canonicalize

Gibt einen Vorgang zum Aktualisieren des Manifests in 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 z. B. man1.manifest auf doppelte Elemente.

mt.exe -man1.manifest -check_for_duplicates

-makecdfs

Generiert CDF-Dateien, um Kataloge zu erstellen. Der folgende Befehl fordert beispielsweise 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.
-? Bei Ausführung mit -?, oder ohne Optionen und Argumente zeigt Mt.exe Hilfetext an.

Entwicklungstools für parallele Assemblys