【问题标题】:How to access the MSIL code of compiled .NET assemblies?如何访问已编译的 .NET 程序集的 MSIL 代码?
【发布时间】:2012-04-05 07:18:55
【问题描述】:

VB.NETC#(和其他语言)编译器生成 MSIL 代码。我怎样才能看到那个代码?

那个文件里有什么?该文件位于何处,我如何访问该文件?

第二个问题:

如何从 cmd 提示符编译 C# 程序,以及如何检查使用该编译器创建的每个文件?

【问题讨论】:

  • 我认为您需要澄清您的问题 - CLR 是一个抽象概念,不会生成 MSIL。你想看什么代码?
  • 我读过 .Net Compactible 语言,如 VB.Net 或 C# 被编译成 Miceosoft 中间语言。
  • 是的,好的,这是真的。但那是关于 VB 和 C# 编译器的。 CLR 是关于运行 .NET 可执行文件的运行时环境。
  • 这意味着 C# 和 VB.Net 编译器生成 MSIL 而不是 CLR
  • 您对此的投票可能会帮助我获得更多答案

标签: c# .net intermediate-code


【解决方案1】:

托管 DLL 和 EXE 位于 MSIL 中。

您可以使用 ildasm.exe 查看 MSIL。

【讨论】:

  • 为了搜索者的利益,此工具将保存在 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools 之类的地方。这篇文章中的参考在底部有一些非常有用的示例。
【解决方案2】:

您需要一个反编译器,例如 Telerik 的 JustDecompile(免费)。使用它,您可以打开任何 .NET 可执行文件或 DLL 并检查生成的 MSIL(使用您选择的语言)。

http://www.telerik.com/products/decompiler.aspx

【讨论】:

    【解决方案3】:

    Ildasm.exe 工具与 VS 一起安装框架。您可以在<Program Files>\Microsoft SDKs 文件夹中找到它。

    它会打开 .EXE 和 .DLL 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      相关资源
      最近更新 更多