将.NET程序集编译为x86机器代码

时间:2011-06-01 08:34:31

标签: c# .net .net-assembly native-code

有没有办法将.NET程序集编译为本机代码(即x86)输出,即没有MSIL。

根据我的理解,如果你只是将x86指定为体系结构,这只会改变PE Header以指向JIT,但程序集仍然包含MSIL并且将根据需要进行JITT。

NGen确实为指定的体系结构生成程序集文件,但它不是编译器,它的目的是提高性能但是你仍然需要原始的DLL,本机映像的存在只能避免JIT编译程序集,但你可以得到原生图像并使用它,是吗?

那么,有没有办法从.NET实际编译到本地机器代码?

2 个答案:

答案 0 :(得分:10)

Spoon Studio(之前被命名为Xenocode)似乎能够做到这一点:http://spoon.net/Studio/Features.aspx

RemoteSoft也有产品,但网站看起来很旧:http://www.remotesoft.com/linker/

答案 1 :(得分:3)

您可以使用名为.NET Native的新预编译技术来完成此操作。请在此处查看:http://msdn.microsoft.com/en-US/vstudio/dotnetnative

目前它仅适用于Windows应用商店应用。它执行单个组件链接。因此.NET Framework库静态链接到您的应用程序。所有内容都编译为本机,并且不再部署IL程序集。