2012-05-24 23 views
34

Estoy interesado en instalar .NET 4.5.¿Funciona .net 4.5 al lado de .NET 4.0?

Pero he oído que es una actualización in situ.

Dado que los usuarios de mi empresa utilizan Windows XP. I can't release any client side apps that use .NET 4.5.

Sé que puedo apuntar .net 4.0 cuando codigo, pero, si instalo .net 4.5, existe el riesgo de que las cosas funcionen en mi máquina que no funcionarán en una máquina con Windows XP (que solo tiene .net 4.0)?

(Por cierto, me miraron, pero no vio esta pregunta. Si se le ha solicitado, por favor me punto a la misma y voy a tratar de eliminar éste.)

+1

4.5 me confunde más que otros con WindRT en la mezcla. – Paparazzi

+1

No instale una versión beta en una máquina de producción. Nunca tuve un gran problema al hacerlo. Use una máquina virtual si quiere jugar con ella. –

Respuesta

23

Sí, hay riesgos de el tipo que describes La interfaz de .NET 4.0 no se modifica, por lo que si se dirige a .NET 4.0, su programa se compilará y ejecutará en XP con .NET 4.0, pero la implementación .NET 4.5 de .NET 4.0 también contiene correcciones de errores. Si confías en que .NET Framework no tiene errores, y el único .NET Framework for XP disponible tiene errores, tu programa experimentará esos errores. He tenido esto que pasar con Entity Framework, pero también podría haber otras correcciones de errores.

+10

¿Entonces básicamente VS 11 "infectará" mi máquina de desarrollo? ¿Ahora estaré ciego ante cualquier corrección que mis usuarios no tengan? Eso es HORRIBLE. Si puedo ver los errores, puedo evitarlos. Si ni siquiera los veo, bueno, solo me hace parecer un mal desarrollador. – Vaccano

+4

@Vaccano Para ser justos, eso también se aplica a las actualizaciones regulares de Windows y a los usuarios que lo deshabilitan. – hvd

+0

Pero una actualización de Windows no contiene años que valga la pena reparar. Por lo general, son ajustes de seguridad. O correcciones menores. Y el usuario tiene la opción de desactivarlo o no (y en mi compañía, no pueden controlar eso). – Vaccano

1

La respuesta aceptada es muy relevante, pero permítanme añadir un ejemplo de una situación en la que el objetivo 4.0 compilado en una máquina 4.5+ es algo menos útil que un 4.0 con errores corregidos.

Si tiene ComReference en sus proyectos, invocarán tlbimp.exe desde .NET 4.5 en la máquina de compilación. Esto puede hacer que su software contenga envolturas que hacen referencia, por ejemplo, a un método System.Reflection.MethodInfo.CreateDelegate(System.Type) que solo existe en .NET 4.5. Obtendrá un MissingMethodException en la máquina WinXP.

Esto me sucedió cuando trabajé con el espacio de nombres ComAdmin, que son objetos COM para acceder al catálogo COM +, pero sospecho que el problema puede ser más amplio.