【发布时间】:2017-07-19 12:17:01
【问题描述】:
可以使用 Roslyn C# 编译器将 C# 编译为 CIL 人类可读的代码吗?就像这里显示的例子:https://en.wikipedia.org/wiki/Common_Intermediate_Language
我知道它可以生成 EXE/DLL 形式的字节码,但我对 CIL 代码感兴趣。
通过命令行或 API。
我知道可以对字节码文件使用反汇编程序,但我更喜欢更直接的方法。
谢谢。
【问题讨论】:
-
.Net 和 .net 核心需要一个 clr。因此他们需要一个 il。当您构建 dll 或 exe 时,编译器会将您的代码转换为 msil(Microsoft 中间语言)。您可以使用
IL DASM等工具查看此内容。 -
为什么不使用 ILdasm ?
-
我不想使用反汇编程序——只是看起来太复杂了——我认为编译器会在内部某个地方拥有我想要直接访问的 MSIL
-
不,它不以任何中间形式维护 IL。字节码由
ILBuilder类直接发出。最简单的解决方案是在生成代码后对其进行反汇编。 -
@JeroenMostert 你想把它作为一个 asnwer 发布吗?