C#是否需要.NET

时间:2011-02-16 13:12:12

标签: c# .net dependencies

我是C#的新手(但不是编程),我想知道:C#程序总是需要.NET,还是有办法避免依赖并使应用程序独立?

6 个答案:

答案 0 :(得分:14)

是C#始终需要.NET运行时。

如果您担心其他平台,Mono允许.NET应用程序使用Mono运行时在Windows(即Linux)以外的平台上运行。

C#代码被编译成CIL代码,这是一个独立于平台的指令集,我引自Wikipedia

  

编译.NET编程期间   语言,源代码是   翻译成CIL代码而不是   平台或特定于处理器的对象   码。 CIL是一个CPU和   与平台无关的指令集   可以在任何地方执行   环境支持共同   语言基础设施,如   Windows上的.NET运行时,或者   跨平台的Mono运行时。

答案 1 :(得分:5)

需要CLI运行时/解释器,但不一定是.NET

目前还有一个用于Linux的CLI解释器MONO

答案 2 :(得分:2)

C#未编译为本机代码,因此计算机无法读取它。您需要.Net框架来转换所谓的字节码(C#编译器编译的代码,CLI)可以通过.Net框架的Just In Time编译器进行转换。

Mono是一个替代框架,它也可以运行C#。它支持更多平台,然后是.Net框架(仅支持Windows)。

所以,是的。运行C#应用程序需要.Net框架或Mono运行时,新版本的Windows会自动安装和更新.Net框架。

答案 3 :(得分:2)

显然不需要.NET运行时,例如,请参阅MonoTouch。

答案 4 :(得分:1)

有可能。 C#只是一种编程语言,就像任何其他编程一样:它可以用你能想到的任何方式编译:包括没有.NET的编译。事实上,MONO项目(许多平台的C#)就是这样做的。

还有一些其他的商业编译器可以假装在没有.NET的情况下编译你的应用程序,但他们只是将.NET粘贴在你的可执行文件中:这是无用的,缓慢的,只是愚蠢的。

在没有.NET或MONO的情况下使用C#的任何其他方式都将是一种教育体验而非实际解决方案。至于教育体验的价值:如果你有时间,我肯定会建议你尝试类似的东西。

答案 5 :(得分:0)

正如C程序通常需要C运行时一样,C#程序需要公共语言运行库。