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