我对安装.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) ?
(顺便说一句,我看了一下,但没有看到这个问题。如果有人询问,请指出我,我会尝试删除这个。)
答案 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对象,但我怀疑问题可能更广泛。