Mt.exe

Mt.exe檔案是產生已簽署檔案和目錄的工具。 它可在 Microsoft Windows 軟體發展工具組 (SDK) 取得。 Mt.exe要求資訊清單中參考的檔案必須存在於與資訊清單相同的目錄中。

Mt.exe使用 Secure Hash Algorithm (SHA-1) 的 CryptoAPI 實作來產生雜湊。 如需雜湊演算法的詳細資訊,請參閱雜湊和簽章演算法。 雜湊會插入為資訊清單中 檔案 標籤的十六進位字串。 此工具目前只會產生 SHA-1 雜湊,不過資訊清單中的檔案可能會使用其他雜湊配置。

Mt.exe會使用 Makecat.exe 從目錄定義檔產生目錄檔案 (.cat) (.cdf) 。 此工具會填入標準範本 CDF,其中包含資訊清單的名稱和位置。 您可以使用此專案搭配Makecat.exe來產生元件目錄。

最新版 Windows SDK 中提供的Mt.exe版本也可以用來產生 Managed 元件和 Unmanaged 並存元件的資訊清單。

語法

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使用下列不區分大小寫的命令列選項。

選項 描述
-清單

指定資訊清單檔的名稱。 若要修改單一資訊清單,請指定一個資訊清單檔案名。 例如,component.manifest。

若要合併多個資訊清單,請在這裡指定來源資訊清單的名稱。 使用 -out-outputresource-updateresource 選項來指定更新的資訊清單名稱。 例如,下列命令列會要求將兩個資訊清單 man1.manifest 和 man2.manifest 合併成新的資訊清單 man3.manifest。

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

-manifest選項不需要冒號 (:) 。

-身份

提供資訊清單 之 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) 檔的名稱。 -dll選項是使用-rgs選項的必要選項。

-Tlb

指定類型程式庫檔案 (.tlb) 的名稱。 必須使用 -dll選項才能使用-tlb選項。

-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 元件,下列命令列會從 managed.dll 產生 out.manifest。

mt.exe -managedassemblyname:managed.dll -out:out.manifest

-nodependency

指定產生不含相依性元素之資訊清單的作業。 -nodependency選項需要-managedassemblyname選項。 例如,如果managed.dll是 Managed 元件,下列命令列會從managed.dll產生 out.manifest,而不需要相依性資訊。

mt.exe -managedassemblyname:managed.dll -out:out.manifest -nodependency

-類別

指定產生具有類別標籤之資訊清單的作業。 -category選項需要-managedassemblyname選項。 例如,如果 managed.dll 是 Managed 元件,下列命令列會從具有類別標籤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 資源檔中的資訊清單所接收,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 之資源接收之資訊清單的作業。 如果使用 -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」

-canonicalize

指定要將資訊清單更新為標準格式的作業。 例如,下列命令會將 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顯示解說文字。

並存元件開發工具