是否可以将.NET字节代码编译为机器语言?

时间:2015-09-24 17:06:51

标签: .net compilation clr bytecode

您可以将.NET字节码直接编译成机器代码吗?

我想这样做,所以我可以提高执行速度。我正在谈论仅编译CLR字节码,而不是直接编译C#或其他东西的源代码。因此,我可以通过首先将其编译为CLR字节码来将任何.NET语言编译为机器语言,并且在完成所有测试和原型设计之后,我可以将其编译为机器代码。

1 个答案:

答案 0 :(得分:1)

是的,似乎有可能(从未尝试过自己),请参阅C# Native Compiler项目,它的目的是使用C将MSIL编译为本机,这就是它的工作原理(如该页面所声称的那样)。

using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        Console.WriteLine("Hello World");
    }
}

假设您将其保存为helloworld.cs,请使用以下命令将其编译为本机。 (需要安装MinGW32)

Il2c.exe /exe helloworld.cs /corelib:CoreLib.dll

那应该创建一个原生的helloworld.exe文件。

还有一个示例项目使用C#本机编译使用此项目的OpenGL应用程序,请参见此处 - Babylon 3D - C#/native port