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中,并嵌入最终合并清单至Bdll的资源中:

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
posted @   zjh6  阅读(43)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示