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 オプションでは、コロン (:)は必要ありません。 |
-同一性 | マニフェストの assemblyIdentity 要素の属性値を提供します。 -identity オプションの引数は、コンマで区切られたフィールドの属性値を含む文字列値です。 "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) ファイルの名前を指定します。 -dll オプションは、-rgs または -tlb オプション 使用する場合に mt.exe で必要です。 最終的に .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 オプションを省略すると、元のマニフェストが変更されます。 |
-inputresource | RT_MANIFEST型のリソースから取得したマニフェストに対して実行される操作を指定します。 リソース識別子 (<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型のリソースによって受信されるマニフェストを生成する操作を指定します。 リソース識別子 (<resource_id>) を指定せずに -outputresource オプションを使用すると、操作では値CREATEPROCESS_MANIFEST_RESOURCEが使用されます。 |
-updateresource | -inputresource および -outputresource オプションを同じ引数で 使用する操作を指定します。 たとえば、次のコマンドは、指定したパスにあるファイルのハッシュを計算し、ポータブル実行可能ファイル (PE) のリソースのマニフェストを更新する操作を要求します。 mt.exe -updateresource:dll_with_manifest.dll;#1 -hashupdate:f:\files. |
-hashupdate | 指定したパスにあるファイルのハッシュ値を計算し、File 要素の ハッシュ 属性の値をこの値で更新します。 たとえば、次のコマンドは、2 つのマニフェスト ファイル 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 を正規形式に更新します。 man1.manifest をmt.exe -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 |
-冗長 | 詳細なデバッグ情報を表示します。 |
-? | -?,またはオプションと引数を指定して実行すると、ヘルプ テキスト Mt.exe 表示されます。 |