这是一个简单的问题。我一直在用.NET 4.5(现在是Beta)编写软件。运行此软件需要什么版本的.NET运行时?是4.5吗?有些老了吗?
此外,.NET更新是Windows Update的一部分吗?
答案 0 :(得分:7)
要运行4.5个已编译的程序集,必须安装4.5框架。 4.5安装是一个就地升级,主要是向前兼容4.0,但绝对不向后兼容。
一个可以让你绊倒的特殊地方是类型转发器。 4.5框架包含大量新型转发器(超过1,100个)。类型转发器是程序集声明类型从程序集A移动到程序集B的一种方式.CLR将静默地将对给定类型的任何引用从A重定向到B.
针对4.5编译的程序集将发出对该类型的引用,就好像它在程序集B中存在一样。如果然后针对4.0安装运行该程序集,它将期望该类型在程序集B中,并且它将不会。结果将是类型加载异常。
具体例子:
static void Main(string[] args)
{
var attrib = new ExtensionAttribute();
Console.WriteLine(attrib);
}
在4.5框上编译该代码,然后尝试在4.0框上运行它。结果将是类型加载异常。 ExtensionAttribute
类型从4.0中的System.Core移动到4.5
答案 1 :(得分:2)
也许更重要的问题是" .NET 4.5需要什么操作系统?"
首先是安装页面
http://msdn.microsoft.com/en-us/library/5a4x27ek
最大的问题是你无法在Windows XP上运行4.5 - 它太旧了(> 10年)
因此,如果您的环境出现问题,请不要认为可以。
4.5 requires以下之一:
答案 2 :(得分:1)
.Net 4.0运行时。 4.5更多.Net库的优点。 CLR版本没有变化。
如果用C#编码,编译器正在改变,但它编译的是CLR 4.0 IL。
答案 3 :(得分:1)
这取决于您是否正在编写Metro风格的应用程序。对于Metro风格的应用程序(Windows 8),您实际上正在使用.NET 4.5框架的一个子集以及一个特殊的仅限Metro的运行时。对于所有其他应用程序,.NET 4.5将.NET 4.0运行时与其他库一起使用(类似于.NET 3.0和.NET 3.5能够在.NET 2.0运行时上运行)。
答案 4 :(得分:1)
CLR版本为1.0,1.1,2.0和4.0。 .NET Framework的其他版本只提供其他类型。 .NET 3和3.5在CLR 2.0上运行。 .NET 4.5在CLR 4上运行。
注意:您仍然需要.NET 4.5来运行4.5个应用程序。