谈到.NET可执行文件到可执行(Turning .NET executable into nativ

2019-06-26 21:40发布

有没有办法在.NET开发的应用程序转换为本地可执行(来源包括在内)?

安装整个框架(最多的.NET Framework 3.5 SP1)需要花费大量的时间 - 并不总是计算机从互联网更新。 是否有可能调用NGEN以产生独立的可执行文件?

谢谢

Answer 1:

这是尚未公布,但Mono项目团队上的工作时间编译器的未来 ,将你在找什么。 其目的是为单声道在iPhone上(如统一)工作,但它应该为所有平台上工作。

编辑:它支持单x86的,但我不知道他们是否已经包括在依赖类包尚未功能(尽管从采访中听说,这是计划中)

编辑2:包括依赖目前的支持,感谢Dykam!



Answer 2:

不,NGen'd代码仍需框架 - 它只是预JIT们在自己的组件的代码。 它还需要为CLR本身的框架。

我相信单有他们正在使用的iPhone规划静态编译。 我不知道这是否会在Windows上工作,以及虽然。

曾经有一个叫做Thinstall产品,用于这一部分人。 它现在被称为ThinApp的 -基本上是应用程序虚拟。 这是商业,但你很可能是能够获得试用版的保持。

就个人而言,我会有点担心任何这样的产品 - 当它涉及到部署,从于水火之中做事的主流方式离开听起来像很多支持电话的配方。 这里还有一个可怕的很多出问题。 我不是说这是行不通的,只是我会很谨慎。

你看在.NET 3.5(SP1)客户端配置文件 ? 这可能有助于减少您的安装要求一点点。



Answer 3:

随着.NET 3.5 SP1,就可以安装.NET Framework的一个较小的子集。 看看这张截图:
(来源: windowsclient.net )



Answer 4:

您可以使用NGEN,使您的应用程序的本地可执行文件,但它仍然是依赖于.NET框架。



Answer 5:

NGEN编译EXE文件到本机的EXE,所以他们并不需要被JIT编译,因为它们运行。 他们仍然依赖于框架虽然。

有一些商业公司做的产品提供编译.NET程序集到独立的EXE文件。 Xenocode和VMware的ThinApp的 。 无论是便宜的,但。



Answer 6:

一些混淆器做到这一点,你就必须做到这一点,事前,但(你交付给用户之前)。 一个例子是remotesoft的蝾螈 。



Answer 7:

你只需要安装你的目标如.NET1.1 .NET2.0的.NET版本

编辑 :如果您需要为目标的3.5版本,您需要安装两个2.0和3.5

ILMerge (免费)可以在几个组件合并成一个,但我不认为它的工作原理与核心运行时。

总之我认为,如果你想运行.NET程序,你需要安装.NET Framework。



Answer 8:

有声称可以在这里做一个商业产品:

http://www.xenocode.com/Obfuscator/

“部署.NET应用程序安全,没有.NET框架安装”

不知道是什么缺点,这将是虽然



Answer 9:

的ThinApp(以前Thinstall)来自VMware。 以前是非常昂贵的,虽然。

http://www.vmware.com/products/thinapp/



Answer 10:

我们公司成立于解决2007年问题的唯一产品是Xenocode Postbuild。 从那时起,我们成功地使用本产品,我们还利用其相当不错的虚拟化功能。

唯一的问题是,我们购买了不支持Windows 7的版本(在这里您不需要安装.NET Framework来运行你的版本<4.0编译后的程序)。 于是我写信给Xenocode。 他们回答

为了获得支持为Win 7,你应该升级到Postbuild的最新版本(现在称为.NET混淆 )。 Win 7的不是2007年Postbuild支持的平台。



Answer 11:

为什么不Ngen.exe? http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=vs.80).aspx

它可以转换.Net ProgramsNative Programs也和你已经拥有它,如果你有.Net框架



文章来源: Turning .NET executable into native executable