Mt.exe

Mt.exe ファイルは、署名付きファイルとカタログを生成するツールです。 Microsoft Windows ソフトウェア開発キット (SDK) で入手できます。 Mt.exeでは、マニフェストで参照されているファイルがマニフェストと同じディレクトリに存在する必要があります。

Mt.exeは、Secure Hash Algorithm (SHA-1) の 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では、大文字と小文字を区別しない次のコマンド ライン オプションが使用されます。

オプション 説明
-マニフェスト

マニフェスト ファイルの名前を指定します。 1 つのマニフェストを変更するには、1 つのマニフェスト ファイル名を指定します。 たとえば、component.manifest です。

複数のマニフェストをマージするには、ソース マニフェストの名前をここで指定します。 -out、-outputresource、または -updateresource オプションを使用して、更新されたマニフェストの名前を指定します。 たとえば、次のコマンド ラインは、man1.manifest と man2.manifest という 2 つのマニフェストを新しいマニフェスト 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.identity:"Microsoft.Windows.SampleAssembly, version=6.0.0.0, type=win32, publicKeyToken=a5aaf5ba15723d5" -out:rgstlb manifest.identity:"Microsoft.Windows.SampleAssembly, version=6.0.0.0, type=win32, publicKeyToken=a5aaf5ba15723d5" -out:rgstlb manifest.identity:"Microsoft.Windows.SampleAssembly, processorArchitecture=x86, version=6.0.0,type=win32, publicKeyToken=a5aaf5ba15723d5" -out:rgstlb manifest.identit

-置換

.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 型のリソースから取得したマニフェストに対して実行される操作を指定します。 リソース ID <>resource_idを指定せずに -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型のリソースによって受信されるマニフェストを生成する操作を指定します。 リソース ID <>resource_idを指定せずに -outputresource オプションを使用する場合、操作では値 CREATEPROCESS_MANIFEST_RESOURCEが使用されます。

-updateresource

同じ引数で -inputresource オプションと -outputresource オプションを使用する操作と同じ操作を指定します。 たとえば、次のコマンドは、指定したパスにあるファイルのハッシュを計算し、ポータブル実行可能ファイル (PE) のリソースのマニフェストを更新する操作を要求します。

mt.exe -updateresource:dll_with_manifest.dll;#1 -hashupdate:f:\files

-hashupdate

指定したパスにあるファイルのハッシュ値を計算し、File 要素のハッシュ属性の値をこの値で更新します。

たとえば、次のコマンドは、man1.manifest と man2.manifest という 2 つのマニフェスト ファイルをマージし、マージされた情報 mergeed.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ヘルプ テキストが表示されます。

サイド バイ サイド アセンブリ開発ツール