2012-06-20 30 views
6

.NET 4.5 es una actualización in situ y, por lo tanto, reemplaza a .NET 4.0. Por consiguiente, cuando instalo .NET 4.5 con Visual Studio 2012, ya no puedo desarrollar aplicaciones para .NET 4.0.Desarrollo para .NET 4.0 (Windows XP) con Visual Studio 2012

Como .NET 4.5 no es compatible con Windows XP, cómo puedo mantener mis NET 4.0 aplicaciones existentes que todavía tienen que correr bajo Windows XP después de instalar Visual Studio 2012?

Hasta ahora siempre podía convertir aplicaciones .NET para cada versión, incluso .NET 1.1, siempre que se instalara VS2003. No tengo ningún problema con que Microsoft no admita .NET 4.5 en XP, creo que está bien cortar cosas viejas. Pero como todavía tenemos clientes que usan Windows XP, debemos ser capaces de crear programas .NET 4.0 al mismo tiempo que .NET 4.5.

EDIT:

acabo de tener mi primer problema de incompatibilidad: He instalado VS 2012 en un servidor Windows 2012. He creado un proyecto destinado a .NET 4.0. En blend 4.0 creo una copia de una plantilla de control de una casilla de verificación. La plantilla generada contiene referencias en colores que están disponibles solo bajo .NET 4.5. La solución no se puede compilar más. Sin embargo, el mismo caso funciona bien en mi instalación de Windows 7.

Supongo que la instalación de .NET 4.5 ha reemplazado las plantillas de control para mis controles estándar. Por lo tanto, no puedo crear copias por más tiempo.

+0

VS2012 RC no es compatible con XP. –

+1

@HansPassant: Gracias, lo sé. ¿Pero podré desarrollar aplicaciones con VS2010 para Windows XP en la misma máquina? ¿O debo separar las PC? – slfan

Respuesta

2

Me he encontrado con algunos problemas graves desarrollando programas .NET para 4.0 contra computadoras con 4.5 instaladas. Un problema, por ejemplo, es que si estás haciendo un desarrollo de WPF y tienes un setter privado en una propiedad, si estás vinculando esa propiedad con Mode = TwoWay, no obtendrás una excepción si estás desarrollando contra .NET 4.5!Debería obtener una excepción y lo hará si se encuentra en un entorno con solo .NET 4.0 instalado (a pesar de que está desarrollando el objetivo para 4.0 en Visual Studio). Ahora, obviamente, no deberías tener Mode = TwoWay y un setter privado, pero tal vez originalmente tenías la intención de que la propiedad fuera OneWay. El punto es que este es solo uno de los muchos ejemplos de problemas que simplemente son barridos por 4.5 y me han llevado a volver a desarrollar en Windows 7 con Visual Studio 2010 y .NET 4.0 para cualquier cosa que tenga como objetivo .NET 4.0.

+0

Punto interesante, no encontré este hasta ahora. ¿Obtiene este error cuando compila contra .NET 4.5 o solo cuando compila contra .NET 4.0? – slfan

+0

Solo cuando compilo contra .NET 4.0 e incluso entonces funciona muy bien en cualquier máquina que tenga .NET 4.5 instalado. – Jordan

+0

Otro error que he encontrado más recientemente se documenta aquí: http://stackoverflow.com/questions/4659257/how-can-synchronizationcontext-current-of-the-main-thread-become-null-in-a -windo – Jordan

1

BIG EDIT: Deberíamos esperar hasta que Microsoft anuncie la decisión final, aún no está clara, solo las conclusiones.

Pero, creo que Microsoft no eliminará el soporte para XP y Vista tan fácil, parece que la cuestión de la disminución de la compatibilidad es solo para fines de velocidad para mostrarlo a los desarrolladores.

Además, si se hace realidad y Microsoft detuvo el soporte para XP y Vista, ¡entonces tiene la máquina virtual como una excelente opción!

mejores deseos

+0

¿Has leído mi pregunta? Estoy hablando de .NET 4.5, una vez que se lanzará VS2012. .NET 4.0 será reemplazado por 4.5. – slfan

+0

¡Oh! ¡Lo siento! Lo recibí mal. – IWIH

2

Mientras tanto he encontrado un gran blog de Scot Hanselman que responde a mis preocupaciones: http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx

.NET 4.5 es un lugar-actualización en lugar de .NET CLR 4.0, pero aún será posible crear aplicaciones .NET 4.0 con Visual Studio 2012.

EDITAR: Ahora instalé la versión final de VS2012. Mis proyectos existentes de .NET 4.0 se compilan y ejecutan, sin problemas hasta el momento. El único inconveniente es que ya no admite proyectos de Windows Installer. Puede avanzar y retroceder entre VS2010 y VS2012.

4

Irónicamente, parece que Mono admite much of the .NET 4.5 functionality, y que se puede instalar en Windows XP.

Si su necesidad C# 5.0 es async y su cliente se niega a actualizar su sistema operativo, esto puede ser una opción.

+2

buen punto. Pero quiero escribir una aplicación WPF que no es compatible con Mono. Por cierto: tenía mi primer problema de incompatibilidad en este momento, voy a editar mi pregunta. – slfan

Cuestiones relacionadas