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 отображает текст справки. |