有没有办法将.NET 程序集编译为本机代码(即x86)输出,即没有MSIL。
据我了解,如果您只是将 x86 指定为体系结构,这只会更改 PE 标头以将其指向 JIT,但程序集仍将包含 MSIL 并将根据需要进行 JITTed。
NGen 确实为指定的体系结构生成程序集文件,但它不是编译器,它旨在提高性能,但您仍然需要原始 DLL,本机映像的存在仅用于避免 JIT 编译程序集,但您无法获得那个原生图像并使用它,可以吗?
那么,有什么方法可以真正从.NET 编译为本机代码?
有没有办法将.NET 程序集编译为本机代码(即x86)输出,即没有MSIL。
据我了解,如果您只是将 x86 指定为体系结构,这只会更改 PE 标头以将其指向 JIT,但程序集仍将包含 MSIL 并将根据需要进行 JITTed。
NGen 确实为指定的体系结构生成程序集文件,但它不是编译器,它旨在提高性能,但您仍然需要原始 DLL,本机映像的存在仅用于避免 JIT 编译程序集,但您无法获得那个原生图像并使用它,可以吗?
那么,有什么方法可以真正从.NET 编译为本机代码?
Spoon Studio(之前被命名为 Xenocode)似乎能够做到这一点:http ://spoon.net/Studio/Features.aspx
RemoteSoft 也有一个产品,但网站看起来很旧:http ://www.remotesoft.com/linker/
您可以使用称为 .NET Native 的新预编译技术来做到这一点。在这里查看:http: //msdn.microsoft.com/en-US/vstudio/dotnetnative
目前它仅适用于 Windows 应用商店应用程序。它执行单个组件链接。因此 .NET Framework 库静态链接到您的应用程序中。一切都编译为本机,不再部署 IL 程序集。