mt清单命令帮助.
mt.exe
[ -manifest <manifest1 名> <manifest2 名> ... ]
[ -identity:<身份串> ]
[ <<[-rgs:<.rgs 文件名>] [-tlb:<.tlb 文件名>] [-winmd:<.winmd 文件名>]> -dll:<文件名> > [ -replacements:<XML 文件名> ] ]
[ -managedassemblyname:<托管程序集> [ -nodependency ] ]
[ -out:<输出清单名> ]
[ -inputresource:<file>[;[#]<resource_id>] ]
[ -outputresource:<file>[;[#]<resource_id>] ]
[ -updateresource:<文件>[;[#]<resource_id>] ]
[ -hashupdate[:<文件路径>] ]
[-makecdfs]
[ -validate_manifest ]
[ -validate_file_hashes:<文件路径> ]
[-canonicalize]
[ -check_for_duplicates ]
[ -nologo ]
选项
-manifest指定要处理清单.至少一个清单名应遵循此选项.注意:-manifest后无冒号(:).
<manifest1 名> <manifest2 名> …
待处理和/或合并清单名.
如用-manifest选项,则为必需.
注意:多个清单会自动合并.由-out/-outputresource/-updateresource之一指定的输出是强制.
-identity:<身份串>
身份串包含assemblyIdentity元素属性.标识串按名=值对,以"名"属性的值开头.例如:"Microsoft.Windows.Common-Controls,processorArchitecture=x86,version=6.0.0.0,type=win32,publicKeyToken=6595b64144ccf1df".注意:只有"name“属性不是”name=value"形式,它应是身份串中第一个属性.
-rgs:采用.RGS的名(注册器脚本).
-tlb:采用.TLB(Typelib文件)名.
-winmd:采用.WINMD(Windows运行时元数据文件)的名.
-dll:取DLL名:表示最终从.RGS,.TLB和.WINMD文件构建的DLL.如果指定了-rgs,-tlb或-winmd,则为必需.
-replacements:<.XML 文件名>
指定包含RGS文件中可替换串值文件.
-managedassemblyname:<托管程序集> [ -nodependency ]
从托管程序集生成清单.
-
nodependency抑制生成最终清单中依赖元素.
-out:<输出清单名>
输出清单名.如果跳过这步,且该工具只操作一个清单,则原位修改清单.
-inputresource:<文件>[;[#]<resource_id>]
用指定ID输入RT_MANIFEST类型资源清单.
resource_id非负16位数字.
resource_id可选,默认为CREATEPROCESS_MANIFEST_RESOURCE_ID(winuser.h).
-outputresource:<文件>[;[#]<resource_id>]
用指定ID输出RT_MANIFEST类型资源清单.
resource_id非负的16位数字.
resource_id可选,默认为CREATEPROCESS_MANIFEST_RESOURCE_ID(winuser.h).
-updateresource:<文件>[;[#]<resource_id>]
等价于相同参数,同时指定-inputresource和-ouputresource.resource_id非负16位数字.
-hashupdate:<文件路径>
计算文件元素中指定文件哈希值,并用此值更新哈希属性.显式指定文件元素中实际文件搜索路径.如未指定文件路径,则默认搜索路径为输出清单位置.
-makecdfs生成目录定义文件(.cdf),用来制作目录.
-validate_manifest验证清单语法正确性及清单架构一致性.
-validate_file_hashes:<文件路径>
验证文件元素哈希值.
-canonicalize 规范化输出清单内容.
-check_for_duplicates 检查清单是否重复.
-nologo 不显示
微软版权数据.抑制不必要输出.
示例:
更新
XML清单的哈希值:
mt -manifest 1.manifest -hashupdate -out:updated.manifest
生成
.cdf文件同时,更新XML清单哈希:
mt -manifest 1.manifest -hashupdate -makecdfs -out:updated.manifest
合并两个清单:
mt -manifest 1.manifest 2.manifest -out:merged.manifest
合并两个清单,并最终更新哈希,来生成最终合并的清单.注意:显式指定文件搜索路径.
mt -manifest 1.manifest 2.manifest -hashupdate:d:\filerepository -out:merged.manifest
从
RGS和/或TLB文件生成清单:
mt -rgs:MSClus.rgs -tlb:MSClus.tlb -dll:foo.dll -replacements:replacements.manifest -identity:"type=win32, name=Microsoft.Tools.SampleAssembly, version=6.0.0.0, processorArchitecture=x86 , publicKeyToken=6595b64144ccf1df" -out:rgstlb.manifest
从托管程序集生成
XML清单:
mt -managedassemblyname:managed.dll -out:out.manifest
抑制依赖:
mt -managedassemblyname:managed.dll -nodependency -out:out.manifest
从
dll中提取清单:
mt -inputresource:dll_with_manifest.dll;#1 -out:extracted.manifest
合并两个清单,
A嵌入在dll中,并嵌入最终合并清单至B的dll的资源中:
mt -inputresource:dll_with_manifest.dll;#1 -manifest 2.manifest -outputresource:dll_with_merged_manifest.dll;#3
要更新
PE资源中的清单(通过更新文件元素哈希值):
mt -updateresource:dll_with_manifest.dll;#1 -hashupdate:f:\files
验证所有文件元素哈希值:
mt -manifest 1.manifest -validate_file_hashes:"c:\files"
验证清单(即,查看是否符合
清单架构):
mt -manifest 1.manifest -validate_manifest
规范化清单
mt -manifest 1.manifest -canonicalize
检查清单中重复元素:
mt -manifest 1.manifest -check_for_duplicates
浙公网安备 33010602011771号