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

Jor*_*oba 12 .net c# .net-assembly native-code

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

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

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

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

Joh*_*ais 10

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

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


m_e*_*ric 3

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

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