我想要分发的我的.净节目没有.净框架。是否有可能编制一个.净节目的机代码吗?

有帮助吗?

解决方案

是的,您可以使用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”。了。

汇编部分有 IL2CPU

我不认为这是可能的。您可以制作预装配件,但仍需要框架。

如果您只关心部署框架的大小,可以阅读

我认为你不应该:这是JIT编译器的任务。

但是,您可以使用ClickOnce或Windows Installer进行部署,以便丢失框架不是一个大问题:您可以告诉安装程序下载框架并安装它。

使用--aot选项查看MONO项目:mono命令。 http://www.mono-project.com/AOT

我一直认为将c#直接编译为机器代码而没有CLR依赖会很酷....

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top