.net 4.5与.net 4.0并行工作吗?

时间:2012-05-24 21:32:29

标签: .net .net-4.0 .net-4.5

我对安装.NET 4.5感兴趣。

但我听说这是一次就地升级。

由于我公司的用户使用的是Windows XP。 I can't release any client side apps that use .NET 4.5.

我知道我可以在编码时定位.net 4.0,但是,如果我安装了.net 4.5,那么在我的机器上工作的风险是否会在Windows XP机器上运行(只有.net 4.0) ?

(顺便说一句,我看了一下,但没有看到这个问题。如果有人询问,请指出我,我会尝试删除这个。)

3 个答案:

答案 0 :(得分:23)

是的,您所描述的那种风险存在。 .NET 4.0界面没有变化,所以如果你的目标是.NET 4.0,你的程序将在.NET 4.0上编译和运行,但.NET 4.0的.NET 4.5实现也包含错误修正。如果您依赖于.NET Framework没有错误,并且唯一可用的.​​NET Framework for XP是错误的,那么您的程序将会遇到这些错误。我在Entity Framework中遇到过这种情况,但也可能有其他错误修复。

答案 1 :(得分:2)

我在WPF论坛上提出了这个问题,并给出了与@hvd给出的基本相同的答案。

http://social.msdn.microsoft.com/Forums/en/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a

答案 2 :(得分:1)

接受的答案是非常相关的,但是让我添加一个例子,说明在4.5+计算机上编译的4.0目标比没有修复错误的4.0更有用。

如果您的项目中有任何ComReference,他们将在构建计算机上从.NET 4.5调用tlbimp.exe。这可能会导致您的软件包含引用的包装器,例如,仅存在于.NET 4.5中的System.Reflection.MethodInfo.CreateDelegate(System.Type)方法。您将在WinXP计算机上获得MissingMethodException

使用ComAdmin命名空间时发生了这种情况,bigserial命名空间是用于访问COM +目录的COM对象,但我怀疑问题可能更广泛。