Mt.exe

Файл Mt.exe — это средство, которое создает подписанные файлы и каталоги. Он доступен в пакете sdk для Microsoft Windows. Mt.exe требует, чтобы файл, на который ссылается манифест, был в том же каталоге, что и манифест.

Mt.exe генерирует хэши, используя реализацию CryptoAPI алгоритма безопасного хэширования (SHA-1). Дополнительные сведения о хэш-алгоритмах см. в разделе Алгоритмы хэширования и подписи. Хэши вставляются в виде шестнадцатеричной строки в теги файла в манифесте. В настоящее время средство создает только хэши SHA-1, хотя файлы в манифестах могут использовать другие схемы хэширования.

Mt.exe использует Makecat.exe для создания файлов каталога (CAT) из файлов определения каталога (CDF). Это средство заполняет стандартный шаблон CDF именем и расположением манифеста. Его можно использовать с Makecat.exe для создания каталога сборок.

Версию Mt.exe, предоставляемую в последних версиях Windows SDK, также можно использовать для создания манифестов для управляемых и неуправляемых параллельных сборок.

Синтаксис

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]

Параметры командной строки

Mt.exe использует следующие параметры командной строки без учета регистра.

Параметр Описание
-Манифеста

Указывает имя файла манифеста. Чтобы изменить один манифест, укажите имя одного файла манифеста. Например, component.manifest.

Чтобы объединить несколько манифестов, укажите здесь имена исходных манифестов. Укажите имя обновленного манифеста с помощью параметров -out, -outputresource или -updateresource . Например, следующая командная строка запрашивает операцию, которая объединяет два манифеста, man1.manifest и man2.manifest, в новый манифест man3.manifest.

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

Без двоеточия (:) является обязательным с параметром -manifest .

-Идентичности

Предоставляет значения атрибутов элемента assemblyIdentity манифеста. Аргумент параметра -identity — это строковое значение, содержащее значения атрибутов в полях, разделенных запятыми. Укажите значение атрибута name в первом поле без включения подстроки "name=". Все остальные поля указывают атрибуты и их значения в форме: <имя> атрибута=<attribute_value>.

Например, чтобы обновить элемент assemblyIdentity манифеста, указав следующие сведения:

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

Включите следующий параметр -identity в командной строке:

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

-Rgs

Указывает имя файла скрипта регистрации (RGS). Параметр -dll необходим для использования параметра -rgs .

-Tlb

Задает имя файла библиотеки типов (TLB-файла). Параметр -dll необходим для использования параметра -tlb .

-Dll

Указывает имя файла динамической библиотеки (DLL). Параметр -dll требуется дляmt.exe , если используются параметры -rgs или -tlb . Укажите имя библиотеки DLL, которую вы планируете в конечном итоге создать из файлов RGS или TLB.

Например, следующая команда запрашивает операцию, которая создает манифест из файлов RGS и 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

-Замены

Указывает файл, содержащий значения для заменяемой строки в RGS-файле.

-managedassemblyname

Создает манифест из указанной управляемой сборки. Используйте с параметром -nodependency , чтобы создать манифест без элементов зависимостей. Используйте параметр -category для создания манифеста с тегами категорий. Например, если managed.dll является управляемой сборкой, следующая командная строка создает out.manifest из managed.dll.

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

-nodependency

Указывает операцию, которая создает манифест без элементов зависимостей. Для параметра -nodependency требуется параметр -managedassemblyname . Например, если managed.dll является управляемой сборкой, следующая командная строка создает out.manifest из managed.dll без сведений о зависимостях.

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

-Категории

Указывает операцию, которая создает манифест с тегами категорий. Для параметра -category требуется параметр -managedassemblyname . Например, если managed.dll является управляемой сборкой, следующая командная строка создает out.manifest из managed.dll с тегами категорий.

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

-nologo

Указывает операцию, которая выполняется без отображения стандартных данных об авторских правах Майкрософт. Если mt.exe выполняется в процессе сборки, этот параметр можно использовать для предотвращения записи нежелательной информации в файлы журнала.

-out

Указывает имя обновленного манифеста. Если это операция с одним манифестом и параметр -out опущен, исходный манифест изменяется.

-inputresource

Указывает операцию, выполняемую с манифестом, полученным из ресурса типа RT_MANIFEST. Если параметр -inputresource используется без указания идентификатора ресурса, <resource_id>, операция использует значение CREATEPROCESS_MANIFEST_RESOURCE.

Например, следующая команда запрашивает операцию, которая объединяет манифест из библиотеки DLL, dll_with_manifest.dll и файла манифеста man2.manifest. Объединенные манифесты получаются манифестом в файле ресурсов другой библиотеки DLL, dll_with_merged_manifests.

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

Чтобы извлечь манифест из библиотеки DLL, укажите имя файла DLL. Например, следующая команда извлекает манифест из lib1.dll а man3.manifest получает извлеченный манифест.

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

-outputresource

Указывает операцию, которая создает манифест для получения ресурсом типа RT_MANIFEST. Если параметр -outputresource используется без указания идентификатора ресурса, <resource_id>, операция использует значение CREATEPROCESS_MANIFEST_RESOURCE.

-updateresource

Указывает операцию, эквивалентную использованию параметров -inputresource и -outputresource с одинаковыми аргументами. Например, следующая команда запрашивает операцию, которая вычисляет хэш файлов по указанному пути и обновляет манифест ресурса переносимого исполняемого файла (PE).

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

-hashupdate

Вычисляет хэш-значение файлов по указанным путям и обновляет значение атрибута hash элемента File с этим значением.

Например, следующая команда запрашивает операцию, которая объединяет два файла манифеста, man1.manifest и man2.manifest, и обновляет значение хэш-атрибута элемента File в манифесте, который получает объединенные сведения, merged.manifest.

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

Если пути к файлам не указаны, операция выполняет поиск расположения манифеста, указанного для получения обновления. Например, следующая команда запрашивает операцию, которая вычисляет обновленное хэш-значение с помощью файлов, найденных путем поиска в расположении updated.manifest.

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

-validate_manifest

Указывает операцию, которая выполняет синтаксическую проверка соответствия манифеста схеме манифеста. Например, следующая команда запрашивает проверка для проверки соответствия man1.manifest его схеме.

mt.exe -manifest man1.manifest -validate_manifest

-validate_file_hashes

Указывает операцию, которая проверяет хэш-значения элементов File манифеста. Например, следующая команда запрашивает операцию, которая проверяет хэш-значения всех элементов File в man1.manifest.

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

-канонизация

Указывает операцию по обновлению манифеста до канонической формы. Например, следующая команда обновляет man1.manifest до канонической формы.

mt.exe -manifest man1.manifest

-check_for_duplicates

Указывает операцию, которая проверяет манифест на наличие повторяющихся элементов. Например, следующая команда проверяет man1.manifest на наличие повторяющихся элементов.

mt.exe -man1.manifest -check_for_duplicates

-makecdfs

Создает CDF-файлы для создания каталогов. Например, следующая команда запрашивает операцию, которая обновляет хэш-значение и создает CDF-файл.

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

-verbose Отображает подробные сведения об отладке.
-? При выполнении с -?, или без параметров и аргументов Mt.exe отображает текст справки.

Параллельные средства разработки сборок