Mt.exe

Mt.exe 파일은 서명된 파일 및 카탈로그를 생성하는 도구입니다. Microsoft Windows SDK(소프트웨어 개발 키트)에서 사용할 수 있습니다. Mt.exe 매니페스트에서 참조되는 파일이 매니페스트와 동일한 디렉터리에 있어야 합니다.

Mt.exe SHA-1(Secure Hash Algorithm)의 CryptoAPI 구현을 사용하여 해시를 생성합니다. 해시 알고리즘에 관한 자세한 내용은 해시 및 서명 알고리즘을 참조하세요. 해시는 매니페스트의 파일 태그에 16진수 문자열로 삽입됩니다. 매니페스트의 파일은 다른 해시 체계를 사용할 수 있지만 이 도구는 현재 SHA-1 해시만 생성합니다.

Mt.exe Makecat.exe 사용하여 카탈로그 정의 파일(.cdf)에서 카탈로그 파일(.cat)을 생성합니다. 이 도구는 매니페스트의 이름과 위치로 표준 템플릿 CDF를 채웁니다. Makecat.exe 사용하여 어셈블리 카탈로그를 생성할 수 있습니다.

Windows SDK의 최신 버전에서 제공되는 Mt.exe 버전을 사용하여 관리되는 어셈블리 및 관리되지 않는 병렬 어셈블리에 대한 매니페스트를 생성할 수도 있습니다.

구문

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 다음과 같은 대/소문자를 구분하지 않는 명령줄 옵션을 사용합니다.

옵션 Description
-매니페스트

매니페스트 파일의 이름을 지정합니다. 단일 매니페스트를 수정하려면 하나의 매니페스트 파일 이름을 지정합니다. 예를 들어 component.manifest입니다.

여러 매니페스트를 병합하려면 여기에서 원본 매니페스트의 이름을 지정합니다. -out, -outputresource 또는 -updateresource 옵션을 사용하여 업데이트된 매니페스트의 이름을 지정합니다. 예를 들어 다음 명령줄은 man1.manifest 및 man2.manifest라는 두 매니페스트를 새 매니페스트 man3.manifest로 병합하는 작업을 요청합니다.

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

콜론 없음(:) 는 -manifest 옵션에 필요합니다.

-Id

매니페스트의 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) 파일의 이름을 지정합니다. -rgs 옵션을 사용하려면 -dll 옵션이 필요합니다.

-Tlb

형식 라이브러리(.tlb) 파일의 이름을 지정합니다. -tlb 옵션을 사용하려면 -dll 옵션이 필요합니다.

-Dll

DLL(동적 연결 라이브러리) 파일의 이름을 지정합니다. -rgs 또는 -tlb 옵션을 사용하는 경우 mt.exe -dll 옵션이 필요합니다. .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

-교체

.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 옵션에는 -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 옵션을 사용하는 경우 resource_id> 작업은 CREATEPROCESS_MANIFEST_RESOURCE 값을 사용합니다.

예를 들어 다음 명령은 DLL, dll_with_manifest.dll 및 매니페스트 파일 man2.manifest에서 매니페스트를 병합하는 작업을 요청합니다. 병합된 매니페스트는 dll_with_merged_manifests 다른 DLL의 리소스 파일에 있는 매니페스트에 의해 수신됩니다.

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

지정된 경로에서 파일의 해시 값을 계산하고 File 요소의 해시 특성 값을 이 값으로 업데이트합니다.

예를 들어 다음 명령은 man1.manifest 및 man2.manifest라는 두 매니페스트 파일을 병합하는 작업을 요청하고 병합된 정보 merged.manifest를 수신하는 매니페스트에서 File 요소의 해시 특성 값을 업데이트합니다.

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 요소에 대한 해시 값의 유효성을 검사하는 작업을 지정합니다. 예를 들어 다음 명령은 man1.manifest의 모든 File 요소에 대한 해시 값의 유효성을 검사하는 작업을 요청합니다.

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 도움말 텍스트를 표시합니다.

Side-by-Side 어셈블리 개발 도구