Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将.NET程序集编译为x86机器代码_C#_.net_.net Assembly_Native Code - Fatal编程技术网

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

C# 将.NET程序集编译为x86机器代码,c#,.net,.net-assembly,native-code,C#,.net,.net Assembly,Native Code,有没有办法将.NET程序集编译成本机代码(即x86)输出,也就是说,没有MSIL 据我所知,如果您只是将x86指定为体系结构,那么这只会更改PE头以指向JIT,但程序集仍将包含MSIL,并根据需要进行JIT NGen确实为指定的体系结构生成程序集文件,但它不是一个编译器,它旨在提高性能,但您仍然需要原始DLL,本机映像的存在只是为了避免JIT编译程序集,但您无法获取并使用该本机映像,对吗 那么,有没有办法从.NET编译到本机机器代码呢?Spoon Studio(以前被命名为Xenocode)似乎

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

据我所知,如果您只是将x86指定为体系结构,那么这只会更改PE头以指向JIT,但程序集仍将包含MSIL,并根据需要进行JIT

NGen确实为指定的体系结构生成程序集文件,但它不是一个编译器,它旨在提高性能,但您仍然需要原始DLL,本机映像的存在只是为了避免JIT编译程序集,但您无法获取并使用该本机映像,对吗

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

Spoon Studio(以前被命名为Xenocode)似乎能够做到这一点:


RemoteSoft也有一个产品,但该网站看起来很旧:

您可以使用名为.NET Native的新预编译技术来实现这一点。在这里查看:


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

我会感到惊讶-这是否也需要将CLR的大部分编译为汇编程序?这应该是最重要的答案:.NET本机是C#/.NET的一个重要里程碑,卡里姆:请记住,这个问题是三年前提出的:)Spoon.net不再是一个东西,但它现在是turbo,它基本上包含了一个解决方案,这与最初的问题有点相反。DotNetNative虽然有其缺点,但目前是一种更好的方法。