是否有可能编译。净IL码机代码吗?
-
02-07-2019 - |
题
我想要分发的我的.净节目没有.净框架。是否有可能编制一个.净节目的机代码吗?
解决方案
是的,您可以使用Ngen.exe进行预编译,但这不会消除CLR依赖。
您还必须运送IL程序集,Ngen的唯一好处是您的应用程序可以在不调用JIT的情况下启动,因此您可以获得真正快速的启动时间。
根据CLR Via C#:
此外,使用预编译的程序集 Ngen通常比JIT更慢 程序集,因为JIT编译器 可以优化目标机器 (32位?64位?特殊寄存器? 等等,而NGEN只会产生一个 基线编制。
编辑:
CLR Via C#对上述信息存在争议,因为有些人说你只需要在目标机器上运行Ngen作为安装过程的一部分。
其他提示
Remotesoft有一个: Salamander .NET Linker
我对此没有任何经验。
有一些第三方的工具,这样做的,例如
另一个(昂贵的,专有的,许可证起价为1599美元)产品可以做到这一点是 Xenocode Postbuild 一>。但是我自己并没有使用它,因为它耗费了一个非洲小国的国民生产总值而且全部......
是否可以编译.NET IL代码 机器代码?
是的,但.NET Framework在运行时(默认)或安装时(ngen)为您完成。除了其他原因之外,这个IL - >机器代码在每台安装机器上单独完成,因此可以针对该特定机器进行优化。
我想发布我的.NET 没有.NET框架的程序。 是否可以编译.NET 程序加工代码?
不,出于所有意图和目的,你不能这样做。第三方解决方法可能在某些情况下有效,但到那时我不会真正考虑它“托管代码”。或“.NET”或“.NET”。了。
是的,你现在可以!最近微软发布了 .NET Native ,这是一项将您的应用程序与.NET Native运行时(它们称为MRT)编译成一个二进制文件(实际上是一个可执行文件和一个动态库)的技术。
查看链接: http://blogs.msdn .COM / b / DOTNET /存档/ 2014/04/02 /宣布净母语preview.aspx http://blogs.msdn.com/b /dotnet/archive/2014/04/24/dotnetnative-performance.aspx
汇编部分有 IL2CPU 。
我不认为这是可能的。您可以制作预装配件,但仍需要框架。
如果您只关心部署框架的大小,可以阅读此
我认为你不应该:这是JIT编译器的任务。
但是,您可以使用ClickOnce或Windows Installer进行部署,以便丢失框架不是一个大问题:您可以告诉安装程序下载框架并安装它。
使用--aot选项查看MONO项目:mono命令。 http://www.mono-project.com/AOT
我一直认为将c#直接编译为机器代码而没有CLR依赖会很酷....