¿Se puede instalar Visual Studio 2012 en paralelo con Visual Studio 2010?

103

¿Visual Studio 2012 interferirá / romperá .NET 4 y / o Visual Studio 2010 si se instalan uno al lado del otro en la misma instancia de Windows?

Chris Pietschmann
fuente
1
sí, ambos funcionan, incluso al mismo tiempo. Lo intenté.
Eric Yin
3
Visual Studio se puede instalar en paralelo, pero tenga en cuenta que VS 2012 viene con .NET 4.5, que sobrescribe .NET 4.0. No es un problema a menos que aún necesite desarrollar para máquinas .NET 4.0.
Vaccano
4
Aún puede desarrollar para máquinas .NET 4.0. Solo tiene que saber que, cuando esté probando su aplicación .NET 4.0 en su máquina VS2012, estará probando una versión diferente de .NET a la de un cliente que nunca ha instalado .NET 4.5. Así que pruebe en una máquina como las que usará su cliente y estará bien.
John Saunders
¡ahhhh el lujo de un cliente que proporciona un entorno de prueba útil! Buena suerte con eso: P
JumpingJezza
11
Es un error pensar que .NET 4.5 es totalmente compatible con .NET 4.0, no lo es y, de hecho, en nuestro caso, ha roto algunas de nuestras soluciones.
Stefan Z Camilleri

Respuestas:

32

Como dijo Reigo, sí. Aquí está el enlace a la página oficial de Microsoft con la información proporcionada por Reigo y más detalles: http://msdn.microsoft.com/en-us/library/ms246609%28v=VS.110%29.aspx

Niklas Söderberg
fuente
36
Se "puede" instalar al lado, lo que significa que el instalador se ejecutará correctamente. Sin embargo, no debe hacer esto a menos que desee pasar dos días desinstalando Visual Studio, .NET 4.5, reparando su marco .NET 4.0 (que se modifica directamente con la instalación de la versión 4.5 beta) y desinstalando la gran cantidad de herramientas de SQL Server 2012 uno a uno. Todo después de que su código 4.0 que funcionaba anteriormente comienza a bombardear con un error de "Referencia de objeto" en una línea que solo contiene un comentario.
mclark1129
8
Esto es muy, muy peligroso si planea continuar desarrollando para .net 4.0. Esto se debe a que su máquina de desarrollo usará los archivos binarios .net 4.5 (porque .net 4.5 es una actualización en el lugar). Estos binarios tienen correcciones de errores que se le "ocultarán" mientras depura el objetivo .net 4.0. Pero cuando se implementa en una máquina que ejecuta solo .net 4.0 (es decir, Windows XP), esos errores no se solucionan para su usuario . Consulte esta publicación para obtener más detalles: social.msdn.microsoft.com/Forums/en-US/wpf/thread/…
Vaccano
2
Pruébelo en una máquina virtual. Puedo confirmar los problemas que describió Mike C. Asumí que VS2012 sería seguro para probar. Me encontré con tantos problemas molestos que terminé sin confiar en mi máquina y reinstalé Windows.
kenchilada
2
¿Siguen existiendo estos problemas con VS 2012 RTM?
Tim Friesen
1
@TimFriesen: el problema que describí todavía está en el RTM. Es un defecto de diseño con el plan de actualización "in situ" que Microsoft ha adoptado para .NET 4.5.
Vaccano
30

La versión .net 4.5 es una actualización local.

Esto significa que los binarios de .net 4.0 serán REEMPLAZADOS por los binarios de .net 4.5 .

Microsoft ha intentado mitigar los problemas que esto causa creando una función "Target .net 4.0". Pero esto es muy diferente de la orientación a versiones anteriores de .net (que han estado una al lado de la otra desde .net 2.0).

Debido a que es una actualización en el lugar, "Target .net 4.0" realmente no puede apuntar a ella. Lo mejor que pueden hacer es intentar eliminar manualmente algunas "funciones". Lo han hecho (Scott Hanselman tenía una publicación en el blog que cubría esto).

Pero no dejes que esto te engañe haciéndote pensar que realmente estás usando .net 4.0. Cualquier error corregido por .net 4.5 se solucionará en su máquina de desarrollo y no para sus usuarios de .net 4.0.

Por lo tanto, si está desarrollando una aplicación "dirigida a .net 4.0" y tiene .net 4.5 instalado, está en riesgo. Si usa accidentalmente un error corregido, no se romperá durante la depuración.

Cuando implementas tu aplicación en una máquina que solo ejecuta .net 4.0 (es decir, Windows XP), esos errores no se corrigen para tu usuario .

Para todos los efectos, esos errores corregidos ahora son "Errores ocultos" (para los desarrolladores que aún necesitan apuntar a .net 4.0.

La mejor parte es que no importa si usa VS 2010 o VS 2012. Una vez que se instala .net 4.5, los errores se ocultan.

Consulte esta publicación para obtener más detalles: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a/

Vaccano
fuente
Lo siento, pero esto oculta el problema. El problema solo existe si depende de sus pruebas en su máquina de desarrollo para saber cuándo funciona su aplicación. Si puede realizar pruebas en el entorno que utilizarán sus clientes (y creo que la mayoría de los desarrolladores están en esta posición), entonces no tiene este problema. Si tiene alguna segunda máquina para probar, incluida una máquina virtual, entonces esto no es un problema.
John Saunders
4
@JohnSaunders: tenemos todo un departamento de control de calidad que realiza pruebas en nuestra plataforma de destino. Pero muchos estudios han demostrado que los diferentes tipos de pruebas detectan diferentes tipos de errores. Lo que busco al depurar no es el mismo nivel de errores que va a encontrar mi equipo de control de calidad. Una vez más, mis pruebas automatizadas no notarán todas las cosas que notaré mientras depuro. Y, por último, redactar una función que dependa de un error que no puede solucionar cuesta $$$. Cuando se encuentra el error, cuanto más lejos está de mi máquina de desarrollo, más cuesta. (Especialmente si he "terminado" la función.)
Vaccano
"El problema sólo existe si depende de sus pruebas en su máquina de desarrollo para saber cuándo funciona su aplicación". ¿Está insinuando que no prueba su código en su máquina de desarrollo? - Este es un problema real. Especialmente para aquellos que no lo conocen. (Y dado que Microsoft no lo anunciará públicamente, son muchos, muchos desarrolladores).
Vaccano
Las pruebas que realizo en mi máquina de desarrollo no determinan si mi código funciona o no. Solo determinan qué tan probable es que el departamento de control de calidad encuentre mis errores en los primeros cinco minutos o no. Pruebo en mi propia máquina para reducir la vergüenza. Son las pruebas unitarias automatizadas en las compilaciones y las pruebas reales de QA las que determinan si mi código se envía o no a los clientes. Esas pruebas incluirán pruebas en un entorno como el de los clientes. En este caso, eso incluiría Windows XP y .NET 4.0.
John Saunders
Lo siento, pero si tiene un departamento de control de calidad, no veo su problema en absoluto. No puedo imaginar que haya tantos errores de .NET 4.0 corregidos por .NET 4.5 que le costaría mucho dinero si escribiera código dependiente de esos errores. Si cree que tendrá ese problema, pruebe con anticipación y con frecuencia en Windows XP y .NET 4.0. Son los desarrolladores que nunca verán los errores los que corren mayor riesgo.
John Saunders
10

Me han quemado mucho las versiones beta de VS, nunca he tenido un problema desagradable para desinstalarlas. Microsoft hace un buen software, pero el instalador parece ser siempre lo último en lo que se ocupa. Los problemas que he visto son que la desinstalación no elimina los componentes que luego arruinan la edición minorista y el instalador no cuenta con otros productos de Microsoft instalados y destruye su configuración.

Este es mucho antes de una versión beta, no lo instale en una máquina que necesita para hacer su trabajo. Lo que prácticamente excluye tener VS2008 instalado. VM está bien, por supuesto.

Hans Passant
fuente
2
Acabo de publicar algo en los foros [ social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/… porque parece que la instalación reemplaza los ensamblajes de .NET Framework 4.0 (pensé que debía haber estado loco pero abriendo System.Core en Reflector reveló que faltaba System.Runtime.CompilerServices.ExtensionAttribute). En resumen, tenga cuidado allí afuera
Damian
@Damian: Es el problema que tenía con 3.0 y 3.5: ambas esencialmente solo eran características adicionales basadas en el tiempo de ejecución 2.0, pero ambas venían con un paquete de servicio 2.0 (que se podía descargar por separado para instalaciones solo 2.0) que de hecho cambió algunas cosas bajo el capó. Mirando 4.0 es aún peor: Microsoft acaba de enviar silenciosamente algunas versiones nuevas a través de Windows Update; la 4.0.30319.1 original fue reemplazada por .225, .235 y .237; cada una de ellas corrigió e introdujo errores o al menos un comportamiento diferente en Areas especificas.
springy76
7

Instalé el RC ayer y encontré lo siguiente:

Hace que VS2010 se congele al ejecutar pruebas unitarias (esto se puede solucionar usando 2012, o mstest en la línea de comando para ejecutar sus pruebas unitarias)

Hace que VS2010 no pueda compilar proyectos C ++, fallando con un error de enlace . Incluso después de desinstalar VS2012 RC, este problema persiste ... por lo que le recomiendo encarecidamente que no lo instale ahora mismo.

Orion Edwards
fuente
1
Tuve el mismo problema con la ejecución de pruebas unitarias en VS 2010 después de instalar VS 2012 RC. Para solucionar este problema, elimine testimpactdata.sdf de la raíz de su solución y active Test Impact en su configuración de prueba.
Sergey Sirotkin
2
Me encontré con el problema de prueba que estás describiendo también. La solución que encontré fue actualizar a Visual Studio 2010 Service Pack 1. Aparentemente, ese es un problema en 2010, no en 2012, pero solo se activa al instalar la versión candidata de 2012. Debería poder instalar el paquete de servicio incluso después de instalar VS 2012 y aún así solucionar el problema. No hago mucho con C ++ en estos días, así que no puedo comentar si eso también está arreglado. VS 2010 SP1 se puede encontrar aquí: microsoft.com/en-us/download/details.aspx?id=23691
rbwhitaker
6

Entonces, leyendo todas las respuestas, todo se reduce a esto:

  • Después de instalar VS2012, .NET 4.5 sobrescribirá .NET 4.0.
  • Aún puede usar VS2010, pero se compilará contra .NET 4.5 (ya que se reemplazó .NET 4.0).
  • Peligro: ya no puede implementar de forma segura sus proyectos en máquinas que ejecutan .NET 4.0.
Jenny O'Reilly
fuente
5

Sí, puede, pero siempre se recomienda instalar primero las versiones anteriores. Y si desea abrir el proyecto de Visual Studio 2010 en VS 11, y luego volver de nuevo, asegúrese de no usar las nuevas funciones de Visual Studio 11

Reigo Hein
fuente
2

Se puede instalar en paralelo, ¡pero ni siquiera es beta ...! ¡No espere que realmente funcione!

Vea este problema que estamos teniendo, y esto lo menciona Damian en otro comentario.

Orejas de perro
fuente
2

Lo hice ayer y lo desinstalé hoy ...

Aparentemente, algo salió mal porque algunas aplicaciones que construí antes comenzaron a dar errores extraños con respecto a "no se pudo cargar el módulo bla bla bla ...", así que desinstalé todo, forcé la reinstalación de .NET Framework 4.0 y ahora todo funciona bien nuevamente.

Pedro Lamas
fuente
2

Definitivamente puede causar problemas. Por ejemplo:

En .NET 4.0, cada vez que uno intenta guardar un valor de enumeración en LINQ-2-Entities, jup, lo adivinó: ERROR cuando tiene 4.0 GRAN ÉXITO cuando trabaja en una máquina con 4.5 instalado (sí, aunque el ensamblaje apunta al cliente 4.0 ¡perfil!)

Así que preste atención cuando utilice esta nueva característica que no tiene ninguna compatibilidad inversa.

Rvcl
fuente
2

Funciona bien en máquinas de 32 bits que se instalan en paralelo, pero en algún momento puede aparecer un error, pero al reinstalar o desinstalar la instalación anterior, se puede instalar. Lo hice durante la mitad del proyecto y tampoco afecta el trabajo anterior.

chandrabhan gurjar
fuente
0

Como se dijo, oficialmente se puede pero puede causar problemas.

Si desea ejecutar Visual Studio 2012, creo que la forma más segura es usar el WMWare VMplayer gratuito e instalar Windows 8 y luego instalar Visual Studio 2012 allí. Necesita al menos 4 GB de RAM, pero funciona mejor con 8 GB o más. Eso es lo que hago de todos modos.

Adam Mendoza
fuente
¿Puede ser más específico sobre los problemas a los que se refiere?
John Saunders
0

¡Mi principal problema ha sido que ya no se pueden ejecutar pruebas unitarias desde VS2010 después de instalar VS2012 RTM! Simplemente cuelga para siempre. Ni siquiera puedo detenerlo.

Entonces, por ahora, diría, MS lo hizo de nuevo, el lado a lado no funciona.

Creo que esto puede deberse a que se trata de una instalación VS2010 sin SP1 aplicado.

nietras
fuente
¿Puede ser específico sobre a qué "pruebas de VS2010" se refiere?
John Saunders
También tengo este problema: intentar ver cualquier resultado de prueba en un bloqueo reproducible tanto en vs2010 como en vs2013 (todos los últimos parches / actualizaciones). Espero algo mejor de ti Microsoft.
fusi
0

La buena noticia es que la instalación crea un punto de restauración del sistema. La copia de seguridad del disco duro externo es la solución para esto hasta que salga una versión real o esté comenzando un proyecto desde cero.

MvcCmsJon
fuente
0

He notado que las soluciones Web y de prueba de carga parecen dañadas después de la instalación de VS2012. He tomado copias y actualizado a 2012 y funcionan bien. Es solo que VS2010 ya no puede iniciar una ejecución de prueba.

Big Ian
fuente
-1

Sí, también puede abrir fácilmente un proyecto de 2012 en 2010 sin problemas. siempre que siga usando .net 4.0.

JGilmartin
fuente