Share via


Mt.exe

Il file Mt.exe è uno strumento che genera file e cataloghi firmati. È disponibile in Microsoft Windows Software Development Kit (SDK). Mt.exe richiede che il file a cui si fa riferimento nel manifesto sia presente nella stessa directory del manifesto.

Mt.exe genera hash usando l'implementazione CryptoAPI dell'algoritmo hash sicuro (SHA-1). Per altre informazioni sugli algoritmi hash, vedere Algoritmi hash e di firma. Gli hash vengono inseriti come stringa esadecimale nei tag di file nel manifesto. Lo strumento attualmente genera solo hash SHA-1, anche se i file nei manifesti possono usare altri schemi hash.

Mt.exe usa Makecat.exe per generare file di catalogo (cat) dai file di definizione del catalogo (con estensione cdf). Questo strumento compila un CDF modello standard con il nome e il percorso del manifesto. È possibile usarlo con Makecat.exe per generare il catalogo assembly.

La versione di Mt.exe fornita nelle versioni recenti di Windows SDK può essere usata anche per generare manifesti per assembly gestiti e assembly side-by-side non gestiti.

Sintassi

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]

Opzioni da riga di comando

Mt.exe usa le opzioni della riga di comando senza distinzione tra maiuscole e minuscole seguenti.

Opzione Descrizione
-Manifesto

Specifica il nome del file manifesto. Per modificare un singolo manifesto, specificare un nome di file manifesto. Ad esempio, component.manifest.

Per unire più manifesti, specificare qui i nomi dei manifesti di origine. Specificare il nome del manifesto aggiornato con le opzioni -out, -outputresource o -updateresource . Ad esempio, la riga di comando seguente richiede un'operazione che unisce due manifesti, man1.manifest e man2.manifest, in un nuovo manifesto, man3.manifest.

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

Nessun due punti (:) è obbligatorio con l'opzione -manifest .

-Identità

Fornisce i valori degli attributi dell'elemento assemblyIdentity del manifesto. L'argomento dell'opzione -identity è un valore stringa contenente i valori degli attributi nei campi separati da virgole. Specificare il valore dell'attributo name nel primo campo, senza includere una sottostringa "name=". Tutti i campi rimanenti specificano gli attributi e i relativi valori usando il formato: <nome> attributo=attribute_value.><

Ad esempio, per aggiornare l'elemento assemblyIdentity del manifesto con le informazioni seguenti:

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

includere l'opzione -identity seguente nella riga di comando:

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

-Rgs

Specifica il nome del file dello script di registrazione (con estensione rgs). L'opzione -dll è necessaria per usare l'opzione -rgs .

-Tlb

Specifica il nome del file di libreria dei tipi (TLB). L'opzione -dll è necessaria per usare l'opzione -tlb .

-dll

Specifica il nome del file DLL (Dynamic Link Library). L'opzione -dll è richiesta da mt.exe se vengono usate le opzioni -rgs o -tlb . Specificare il nome della DLL che si intende compilare eventualmente dai file con estensione rgs o tlb.

Ad esempio, il comando seguente richiede un'operazione che genera un manifesto da file con estensione rgs e 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

-Sostituzioni

Specifica il file che contiene i valori per la stringa sostituibile nel file con estensione rgs.

-managedassemblyname

Genera un manifesto dall'assembly gestito specificato. Usare con l'opzione -nodependency per generare un manifesto senza elementi di dipendenza. Usare con l'opzione -category per generare un manifesto con tag di categoria. Ad esempio, se managed.dll è un assembly gestito, la riga di comando seguente genera out.manifest da managed.dll.

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

-nodependency

Specifica un'operazione che genera un manifesto senza elementi di dipendenza. L'opzione -nodependency richiede l'opzione -managedassemblyname . Ad esempio, se managed.dll è un assembly gestito, la riga di comando seguente genera out.manifest da managed.dll senza informazioni di dipendenza.

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

-Categoria

Specifica un'operazione che genera un manifesto con tag di categoria. L'opzione -category richiede l'opzione -managedassemblyname . Ad esempio, se managed.dll è un assembly gestito, la riga di comando seguente genera out.manifest da managed.dll con tag di categoria.

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

-nologo

Specifica un'operazione eseguita senza visualizzare i dati standard sul copyright Microsoft. Se mt.exe viene eseguito come parte di un processo di compilazione, questa opzione può essere usata per impedire la scrittura di informazioni indesiderate nei file di log.

-out

Specifica il nome del manifesto aggiornato. Se si tratta di un'operazione a manifesto singolo e l'opzione -out viene omessa, il manifesto originale viene modificato.

-inputresource

Specifica un'operazione eseguita su un manifesto ottenuto da una risorsa di tipo RT_MANIFEST. Se l'opzione -inputresource viene usata senza specificare l'identificatore della risorsa, <resource_id>, l'operazione usa il valore CREATEPROCESS_MANIFEST_RESOURCE.

Ad esempio, il comando seguente richiede un'operazione che unisce un manifesto da una DLL, dll_with_manifest.dll e un file manifesto, man2.manifest. I manifesti uniti vengono ricevuti da un manifesto nel file di risorse di un'altra DLL, dll_with_merged_manifests.

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

Per estrarre il manifesto da una DLL, specificare il nome del file DLL. Ad esempio, il comando seguente estrae il manifesto da lib1.dll e man3.manifest riceve il manifesto estratto.

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

-outputresource

Specifica un'operazione che genera un manifesto da ricevere da una risorsa di tipo RT_MANIFEST. Se l'opzione -outputresource viene usata senza specificare l'identificatore della risorsa, <resource_id>, l'operazione usa il valore CREATEPROCESS_MANIFEST_RESOURCE.

-updateresource

Specifica un'operazione equivalente all'uso delle opzioni -inputresource e -outputresource con argomenti identici. Ad esempio, il comando seguente richiede un'operazione che calcola un hash dei file nel percorso specificato e aggiorna il manifesto di una risorsa di un eseguibile portabile (PE).

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

-hashupdate

Calcola il valore hash dei file nei percorsi specificati e aggiorna il valore dell'attributo hash dell'elemento File con questo valore.

Ad esempio, il comando seguente richiede un'operazione che unisce due file manifesto, man1.manifest e man2.manifest, e aggiorna il valore dell'attributo hash dell'elemento File nel manifesto che riceve le informazioni unite, merged.manifest.

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

Se i percorsi dei file non vengono specificati, l'operazione cerca il percorso del manifesto specificato per ricevere l'aggiornamento. Ad esempio, il comando seguente richiede un'operazione che calcola il valore hash aggiornato usando i file trovati eseguendo una ricerca nel percorso di updated.manifest.

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

-validate_manifest

Specifica un'operazione che esegue un controllo della sintassi della conformità del manifesto con lo schema del manifesto. Ad esempio, il comando seguente richiede un controllo per convalidare la conformità di man1.manifest con il relativo schema.

mt.exe -manifest man1.manifest -validate_manifest

-validate_file_hashes

Specifica un'operazione che convalida i valori hash degli elementi File del manifesto. Ad esempio, il comando seguente richiede un'operazione che convalida i valori hash di tutti gli elementi File del file man1.manifest.

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

-canonicalize

Specifica un'operazione per aggiornare il manifesto al formato canonico. Ad esempio, il comando seguente aggiorna man1.manifest in formato canonico.

mt.exe -manifest man1.manifest

-check_for_duplicates

Specifica un'operazione che controlla la presenza di elementi duplicati nel manifesto. Ad esempio, il comando seguente controlla man1.manifest per gli elementi duplicati.

mt.exe -man1.manifest -check_for_duplicates

-makecdfs

Genera file con estensione cdf per creare cataloghi. Ad esempio, al comando seguente richiede un'operazione che aggiorna il valore hash e genera un file con estensione cdf.

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

-verbose Visualizza informazioni dettagliate sul debug.
-? Quando viene eseguito con -?, o senza opzioni e argomenti, Mt.exe visualizza il testo della Guida.

Strumenti di sviluppo di assembly side-by-side