当前位置: 首页 > news >正文

Mt.exe

Mt.exe文件是生成签名文件和目录的工具。Microsoft Windows软件开发工具包(SDK)中提供了该工具。Mt.exe要求清单中引用的文件与清单位于同一目录中。

Mt.exe使用安全哈希算法(SHA-1)的CryptoAPI实现生成哈希。哈希作为十六进制字符串插入清单中的文件标记中。尽管清单中的文件可能使用其他哈希方案,但该工具当前仅生成SHA-1哈希。

Mt.exe使用Makecat.exe从目录定义文件(.cdf)生成目录文件(.cat)。该工具使用清单的名称和位置填写标准模板CDF。可以将其与Makecat.exe一起使用以生成程序集目录

Windows SDK的最新版本中提供的Mt.exe版本也可以用于生成托管程序集和非托管并行程序集的清单。

语法

mt.exe [-manifest * <component1.manifest> <component2.manifest> ] [-身份: ] [-rgs: <file1.rgs> ] [-tlb: <file2.tlb> ] [-dll: <file3.dll> ] [-替换:] [-managedassemblyname:] [-nodependency] [-category] [-out:] [-inputresource:; [#] <resource_id> ] [-outputresource:; [#] <resource_id> ] [-updateresource:; [#] <resource_id> ] [-hashupdate [:]] [-makecdfs] [-validate_manifest] [-validate_file_hashes:* ] [-规范化] [-check_for_duplicates] [-nologo] [-详细]

命令行选项

Mt.exe使用以下不区分大小写的命令行选项。

Mt.exe uses the following case-insensitive command line options.

COMMAND LINE OPTIONS
OptionDescription
-manifest指定清单文件的名称。要修改一个清单,请指定一个清单文件名。例如,component.manifest。
要合并多个清单,请在此处指定源清单的名称。使用-out-outputresource-updateresource选项指定更新的清单的名称。例如,以下命令行请求将两个清单man1.manifest和man2.manifest合并为新清单man3.manifest的操作。
mt.exe -manifest man1.manifest man2.manifest -out:man3.manifest
[!注意]  -manifest选项
不需要冒号(:) 。
-identity提供清单的assemblyIdentity元素的属性值。-identity选项的参数是一个字符串值,其中包含用逗号分隔的字段中的属性值。在第一个字段中提供name属性的值,但不包括“ name =“子字符串。其余所有字段均使用以下格式指定属性及其值:=。
例如,使用以下信息更新清单的assemblyIdentity元素:

在命令行上包括以下-identity选项:

-identity:"Microsoft.Windows.SampleAssembly, processorArchitecture=x86, version=6.0.0.0, type=win32, publicKeyToken=a5aaf5ba15723d5"
-rgs指定注册脚本(.rgs)文件的名称。使用-rgs选项需要-dll选项。
-tlb指定类型库(.tlb)文件的名称。使用-tlb选项需要-dll选项。
-dll指定动态链接库(DLL)文件的名称。该-dll选项是必需的mt.exe如果-rgs-tlb正在使用的选项。指定最终要从.rgs或.tlb文件生成的DLL的名称。
例如,以下命令请求一个从.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
-replacements指定包含.rgs文件中可替换字符串的值的文件。
-managedassemblyname从指定的托管程序集生成清单。与-nodependency选项一起使用可生成不含依赖项元素的清单。与-category选项一起使用以生成带有类别标签的清单。例如,如果managed.dll是托管程序集,则以下命令行从managed.dll生成out.manifest。
mt.exe -managedassemblyname:managed.dll -out:out.manifest
-nodependency指定生成不含依赖项元素的清单的操作。该-nodependency选项要求-managedassemblyname选项。例如,如果managed.dll是托管程序集,则以下命令行从managed.dll生成out.manifest,而没有依赖项信息。
mt.exe -managedassemblyname:managed.dll -out:out.manifest -nodependency
-category指定生成带有类别标签的清单的操作。该-category选项要求-managedassemblyname选项。例如,如果managed.dll是托管程序集,则以下命令行从带有类别标签的managed.dll中生成out.manifest。
mt.exe -managedassemblyname:managed.dll -out:out.manifest -category
-nologo指定在不显示标准Microsoft版权数据的情况下运行的操作。如果mt.exe作为构建过程的一部分运行,则可以使用此选项来防止将不需要的信息写入日志文件。
-out指定更新清单的名称。如果这是单清单操作,并且省略了-out选项,那么将修改原始清单。
-inputresource指定对从RT_MANIFEST类型的资源获得的清单执行的操作。如果使用-inputresource选项而不指定资源标识符,,该操作使用值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选项而不指定资源标识符,,该操作使用值CREATEPROCESS_MANIFEST_RESOURCE。
-updateresource指定等效于使用-inputresource-outputresource选项以及相同参数的操作。例如,以下命令请求一个操作,该操作计算指定路径上文件的哈希并更新可移植可执行文件(PE)的资源清单。
mt.exe -updateresource:dll_with_manifest.dll;#1 -hashupdate:f:\files.
-hashupdate

计算指定路径上文件的哈希值,并使用该值更新File元素的hash属性值。例如,以下命令请求一个操作,该操作合并两个清单文件man1.manifest和man2.manifest,并更新清单中接收合并信息的文件元素hash属性的值merged.manifest。mt.exe -manifest man1.manifest man2.manifest -hashupdate:d:\ filerepository -out:merged.manifest

如果未指定文件的路径,则该操作将搜索指定清单的位置以接收更新。例如,以下命令请求一个操作,该操作使用通过搜索update.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元素的哈希值。例如,以下命令请求一个操作,该操作验证man1.manifest的所有File元素的哈希值。
mt.exe -manifest man1.manifest -validate_file_hashhes:“ c; \ files”
-canonicalize指定将清单更新为规范形式的操作。例如,以下命令将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将显示帮助文本。

相关文章:

  • 你所不知道的C和C++运行库
  • 静态库和动态库冲突
  • dll搜索顺序
  • 嵌入V8入门
  • V8编程详解
  • 代理服务器
  • sqlite加密
  • x86/x64/x86_64/i386/ia32/ia64/amd/amd64 辨析
  • 理清gcc、libc、libstdc++的关系
  • gcc/g++/clang/cl编译器
  • 深入浅出让你理解什么是LLVM
  • Ninja - chromium核心构建工具
  • depot_tools
  • 智能指针 unique_ptr 详解
  • C++11中“= delete;“的使用
  • 2017 年终总结 —— 在路上
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • 30秒的PHP代码片段(1)数组 - Array
  • CSS实用技巧
  • Docker 笔记(2):Dockerfile
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • exif信息对照
  • JavaScript HTML DOM
  • laravel5.5 视图共享数据
  • Linux各目录及每个目录的详细介绍
  • Spark RDD学习: aggregate函数
  • 删除表内多余的重复数据
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • FaaS 的简单实践
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #Linux(帮助手册)
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (02)vite环境变量配置
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (六)c52学习之旅-独立按键
  • (七)Java对象在Hibernate持久化层的状态
  • (四)Linux Shell编程——输入输出重定向
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)scrum常见工具列表
  • .axf 转化 .bin文件 的方法
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .jks文件(JAVA KeyStore)
  • .NET CLR基本术语
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net 托管代码与非托管代码
  • .netcore 获取appsettings
  • .Net接口调试与案例
  • .NET命名规范和开发约定
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • ?.的用法