【问题标题】:How to generate IL source code with csc (C# compiler) or dmcs (mono C# compiler)?如何使用 csc(C# 编译器)或 dmcs(单 C# 编译器)生成 IL 源代码?
【发布时间】:2011-08-29 15:08:06
【问题描述】:

gcc 有一个 -s 选项来生成汇编源代码。 csc(MS C# 编译器)或 dmcs(单 C# 编译器)是否具有等价性?我的意思是那些编译器是否提供了一个选项来生成可以读取而不是执行二进制文件的 IL 源代码?

【问题讨论】:

  • 我很确定 csc 只是编译为 IL,它运行的框架在运行时将其转换为可执行代码。
  • 实际上,Mono 包含 csc、gmcs 和 dmcs——这只是 Mono C# 编译器进化的一个步骤,它支持泛型和动态。在 Mono 2.8+ 中,它们是相同的。

标签: c# mono il csc


【解决方案1】:

到达 IL 非常容易:只需使用 ildasm。 /text 选项将结果打印到控制台,您可以将其转移到文件中。

【讨论】:

  • 您也可以使用 Cecil 来提取它,但这并不那么简单。
【解决方案2】:

C# 编译器总是生成 IL(在 .net 的情况下为CIL),因为这就是 .net 的工作方式,但如果您想将其预编译为机器代码以加快执行速度,您可以使用 ngen .exe(请参阅HERE)。

如果您只想查看生成的 IL,可以使用 ILSpy。

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多