Ildasm.exe 只对磁盘上的 PE 文件进行操作。它不对安装在全局程序集缓存中的文件进行操作。
Ildasm.exe 生成的文本文件可以用作 MSIL 汇编程序 (Ilasm.exe) 的输入。这很有用,例如当编译用并非支持所有运行库元数据属性的编程语言编写的代码时。通过 Ildasm.exe 编译该代码并运行输出后,可以手动编辑结果 MSIL 文本文件以添加缺少的属性。然后可以通过 MSIL 汇编程序运行此文本文件以生成最终的可执行文件。
注意 |
|---|
| 目前,无法对包含嵌入的本机代码的 PE 文件(例如,由 Visual C++ 生成的 PE 文件)使用此技术。 |
可以使用 MSIL 反汇编程序中的默认 GUI,在分层树视图中查看任何现有 PE 文件的元数据和反汇编代码。若要使用此 GUI,请在命令行中键入 ildasm,无需提供 PEfilename 参数或任何选项。从“文件”菜单中可以定位到希望加载到 Ildasm.exe 中的 PE 文件。若要保存为选定的 PE 显示的元数据和反汇编代码,请在“文件”菜单中选择“转储”命令。若要只保存分层树视图,请在“文件”中选择“转储树视图”命令。有关将文件加载到 Ildasm.exe 中和解释输出的详细指南,请参见 Ildasm.exe 教程,该教程位于 .NET Framework SDK 附带的 Samples 文件夹中。
如果用包含嵌入资源的 PEfilename 参数提供 Ildasm.exe,则此工具生成多个输出文件:一个包含 MSIL 代码的文本文件,而每个嵌入的托管资源都有一个用该资源在元数据中的名称生成的 .resources 文件。如果 PEfilename中有嵌入的非托管资源,则用 /output 选项为 MSIL 输出指定的文件名生成 .res 文件。
注意 |
|---|
| Ildasm.exe 只显示 .obj 和 .lib 输入文件的元数据说明。不反汇编这些文件类型的 MSIL 代码。 |
可以对 .exe 或 .dll 文件运行 Ildasm.exe 来确定该文件是否是托管的。如果该文件不是托管的,则此工具将显示一条信息,说明该文件不包含有效的公共语言运行库头,并且无法反汇编。如果该文件是托管的,则此工具将成功运行。