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


Tengo un viejo ASP.NET Proyecto MVC 2 que no quiero actualizar a MVC 3 o MVC 4. Estoy trabajando en una nueva máquina que ejecuta 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 aparece gris en el Explorador de soluciones. No quiero instalar otra copia de Visual Studio. ¿Cómo puedo abrir un proyecto MVC antiguo en una nueva versión de Visual Studio?

Author: ahsteele, 2012-11-17

3 answers

Abrir un proyecto MVC no compatible en Visual Studio 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 aplicar y trabajar para proyectos MVC 1. Sin embargo, no los he probado y, por lo tanto, no puedo garantizar que realmente funcionen.

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

Una vez que tenga instalado el tipo apropiado de MVC, el proyecto aún no se cargará en VS 2012. Esto es porque ASP.NET Los proyectos 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 usa dentro de Visual Studio.

Tanto Visual Studio 2012 como Visual Studio 2013 están limitados en su compatibilidad hacia atrás con ASP.NET MVC y otros tipos de proyectos. Desafortunadamente, instalar los viejos bits MVC no cambió eso. Visual Studio 2012 es compatible con el ASP.NET MVC 3 y 4 sabores del proyecto. Visual Studio 2013 es compatible con MVC 4 y MVC 5.

Para que el proyecto se cargue tendrá que modificar el archivo del proyecto. Para hacerlo, haga clic derecho en el proyecto descargado y seleccione Editar. Que abrirá el archivo de proyecto como un archivo de texto XML. Encontrar el nodo ProjectTypeGuids que debería verse algo como esto:

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

Elimine el Guid del Proyecto apropiado de la lista:

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

Con el GUID apropiado eliminado el ProjectTypeGuids debería ser similar a esto:

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

Guarde el archivo y cierre el editor de archivos de proyecto de Visual Studio. Haga clic derecho en proyecto y seleccione recargar. Si el proyecto no se recarga, cierre y vuelva a abrir Visual Studio. Ahora deberías poder trabajar con tu antiguo ASP.NET Proyecto MVC en su 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 esto es un ASP.NET Proyecto MVC; por lo tanto, las características específicas del proyecto como " Agregar controlador, Ver, etc."no estará presente en los menús.

 283
Author: ahsteele,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:17:54

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

.csproj : error : La operación no se pudo completar. Cadena de clase no válida

No puedo encontrar ninguna cita para la causa real de eso, pero fui capaz de conseguir VS2012RTM para cargar el proyecto con éxito cambiando el <ProjectGuid>. (Ni 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 más tiempo.

 4
Author: Ruben Bartelink,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-01 11:58:51

En VS2017 la solución es simplemente hacerlo como <ProjectTypeGuids></ProjectTypeGuids> así.

No hay espacios entre damas y caballeros, de lo contrario perderá 48 horas de su tiempo.

Saludos

 0
Author: WickStargazer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-12 12:27:38