131 votos

¿Cómo abro un viejo proyecto de MVC en Visual Studio 2012 o Visual Studio 2013?

Tengo un viejo proyecto ASP.NET MVC 2 que no quiero actualizar a MVC 3 o MVC 4. Estoy trabajando en una nueva máquina con Windows 8, Visual Studio 2012 y Visual Studio 2013. Cuando intento abrir el proyecto MVC 2 en VS 2012 o VS 2013 recibo el error:

Este proyecto es incompatible con la edición actual de Visual Studio

El proyecto se descarga y se pone gris en el Explorador de Soluciones. No quiero instalar otra copia de Visual Studio. ¿Cómo puedo abrir un proyecto antiguo de MVC en una nueva versión de Visual Studio?

240voto

ahsteele Puntos 12230

La apertura de un proyecto de MVC sin apoyo en Estudio Visual 2012 o Visual Studio 2013 es en realidad bastante fácil de lograr con dos pasos. De hecho, como El comentario de bytebender indica estos mismos pasos debería solicitar y trabajar para los proyectos del MVC 1. Sin embargo, no los he probado y por lo tanto no puedo garantizar que funcionen de verdad.

Asumiendo que aún no lo ha hecho, el primer paso es descargar e instalar MVC 1 , MVC 2 o MVC 3 (cierre el Estudio Visual antes de iniciar la instalación).

Una vez que se tenga el sabor apropiado de MVC instalado el proyecto aún no se cargará en el VS 2012. Esto se debe a que los proyectos ASP.NET MVC son un subtipo de proyecto del tipo de proyecto de Aplicación Web. Esto significa que el proyecto tiene complementos y características adicionales disponibles cuando se utiliza dentro de Visual Studio.

Tanto Visual Studio 2012 como Visual Studio 2013 tienen una compatibilidad limitada con ASP.NET MVC y otros tipos de proyectos. Desafortunadamente, la instalación de los antiguos bits de MVC no cambió eso. Visual Studio 2012 es compatible con los sabores del proyecto ASP.NET MVC 3 y 4. Visual Studio 2013 es compatible con MVC 4 y MVC 5.

Para conseguir que el proyecto se cargue tendrás que modificar el archivo del proyecto. Para ello, haz clic con el botón derecho del ratón en el proyecto descargado y selecciona Editar. Con lo cual se abrirá el archivo de proyecto como un archivo de texto XML. Busca el ProjectTypeGuids que debería tener un aspecto parecido a este:

<ProjectTypeGuids>
    {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

Elimine de la lista la Guía de Proyectos apropiada:

  • ASP.NET MVC 1: {603c0e0b-db56-11dc-be95-000d561079b0}
  • ASP.NET MVC 2: {F85E285D-A4E0-4152-9332-AB1D724D3325} (mostrado en el ejemplo anterior)
  • ASP.NET MVC 3: {E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • ASP.NET MVC 4: {E3E379DF-F4C6-4180-9B81-6769533ABE47}

Con la GUÍA apropiada se quitó el ProjectTypeGuids debería tener un aspecto similar a este:

<ProjectTypeGuids>
    {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

Guarda el archivo y cierra el editor de archivos de proyecto de Visual Studio. Haz clic con el botón derecho del ratón en el proyecto y selecciona recargar. Si el proyecto no se recarga, cierra y vuelve a abrir Visual Studio. Ahora deberías poder trabajar con tu antiguo proyecto ASP.NET MVC en tu nueva versión de Visual Studio.

Una cosa importante a tener en cuenta es que después de estas modificaciones Visual Studio no es consciente de que se trata de un proyecto ASP.NET MVC; por lo tanto, las características específicas del proyecto como "Añadir controlador, ver etc." no estarán presentes en los menús.

4voto

Ruben Bartelink Puntos 23945

Usé el enfoque de @ahsteele (¡gracias y 2x+1s!), pero tenía un error más:-

.csproj : error : La operación no pudo ser completada. Cadena de clase inválida

No puedo encontrar ninguna cita para la causa real de eso, pero fui capaz de conseguir que VS2012RTM cargara el proyecto con éxito cambiando el <ProjectGuid> . (No tengo idea de cómo sucedió esto - es parte de una gran solución y VS08, VS10, VS11 Beta y VS2012RC han actualizado el .csproj y .sln con el tiempo.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X