lunes, 2 de junio de 2008

Project converter es la solución

Ya anticipé en mi última entrada relacionada con Visual Studio 2008 que tenía alguna que otra batalla más para contaros, pero que lo dejaba para otro día. Bien, como diría aquel: today is the day ;-).

Que conste que me parece oportuno contar esta batalla porque veo que últimamente hay bastantes desarrolladores actualizándose a Visual Studio 2008, y creo que este post puede ayudar a más de uno, o al menos eso espero. No creáis que soy vidente y veo a través de mi blog a la gente instalando Visual Studio 2008; no, no soy el nuevo Rappel, simplemente he sacado esta conclusión tras analizar las estadísticas que me ofrece diariamente Google Analytics acerca de mi blog, de las que rápidamente se extrae que la mini guía de instalación de Visual Studio 2008 que publiqué hace mes y pico es una de las páginas más vistas en la historia...de mi blog ;-). Vamos allá.

Es lo de siempre. A la hora de actualizarse a una nueva versión de cualquier tipo de herramienta, sobe todo informática, siempre hay unos pros y unos contras. En mi parte de la balanza de los pros siempre aparece la palabra "novedad" y siempre meto algo de mis ganas de probar lo último de lo último. En la parte de los contras...muchos contras tiene que haber para que yo deje de probar algo "nuevo". Si bien no había oído nada sobre la incompatibilidad de Visual Studio 2008 con .NET Micro Framework (hasta que lo probé y tuve que escribir un post...), reconozco que sí me habían avisado de ciertos problemillas en equipos de desarrollo donde se comparten soluciones y proyectos, y donde hay gente que sigue con Visual Studio 2005 y otros ya se han actualizado a Visual Studio 2008. Y es que hay de todo en la viña del señor...

La primera prueba "seria" que hice con Visual Studio 2008 fue abrir un proyecto "antiguo" desarrollado con su Visual Studio 2005:


Salta el típico asistente de conversión de proyectos al que estamos acostumbrados, la conversión se realiza con éxito, compruebo que todo está en orden, rezo, pulso F5, vuelvo a rezar y chequeo que la aplicación funciona bien; todo perfecto, como debe ser. Claro, pero ahora necesito que una colega del curro siga probando unas cosillas, por lo que le mando el proyecto y lo intenta abrir con Visual Studio 2005. Pete, me lo temía:

Ya me habían avisado en el grupo de Artalde de esta incompatibilidad hacia atrás, pero a estas alturas ya sabéis que soy un poco cabezón y un poco echao pa'lante. Siguiendo el gran consejo ofrecido por Toni Recio en el mismo thread, decidí comparar con WinDiff el fichero de soluciones creado por VS2008, y el que el asistente de conversión guarda como backup, el correspondiente a VS2005. Como podéis ver en la imagen, la diferencias son mínimas:

Así que para abrir con VS2005 soluciones y proyectos de VS2008 simples, basta con aplicar el truco del almendruco: editar el fichero de solución de VS2008, cambiar "Format Version 10.00" por "Format Version 9.00", guardar y ver si VS2005 es capaz de tragárselo. Sin embargo, la solución con la que yo estaba trabajando era un poco "especialita", así que yo no tuve suerte y admito que este pequeño tricky-hack no me funcionó. Luego me dio por comparar los ficheros de cada proyecto de la solución, los clásicos .csproj. Entonces me doy cuenta que VS2008 también mete mano a estos proyectos, de hecho, en mi caso había bastantes cambios. Esta vez me da un poco más de yuyu "editar a pelo", con lo que raudo y veloz pido auxilio a Google.

Tras sufrir varias turbulencias en la búsqueda, finalmente aterrizo en un blog donde tras explicar mi mismo problema, alguien linka a la página personal de un tipo llamado Emmet Gray. Buceo un poco por su web hasta que en seguida diviso el oasis en medio del desierto, la solución a mis problemas, la utilidad ProjectConverter, una utilidad que convierte los proyectos de VS2005 a Vs2008 y viceversa. Me la bajo, la instalo and here we go! La utilidad se integra en el menú contextual que se despliega al hacer clic con el botón derecho del ratón sobre el fichero de solución de Visual Studio:

Automáticamente ProjectConverter detecta que se trata de una solución de VS2008, con lo que muestra una pantalla para confirmar que queremos convertir la solución backwards, a VS2005:

Dejamos por si acaso la opción de realizar una copia de seguridad y pulsamos con total confianza "Convert Project". Tutto bene:

Sólo por curiosidad buceo en el directorio para ver qué ha realizado esta pequeña gran utilidad. Como se aprecia, hace un backup de los ficheros de solución y de proyecto de VS2008 y escribe v9 en ellos, mientras que genera un nuevo fichero de solución y otro de proyecto entendibles por VS2005:
Sé que tener que utilizar este tipo de herramientas cuando se quieren compartir proyectos entre miembros del equipo es un poco coñazo, pero antes que andar editando a mano los ficheros de soluciones y de proyectos, cualquier cosa, ¿o no?. A mí desde luego me ha parecido super útil. Y por cierto, he de decir que le mandé a Emmet un bug que encontré al convertir un tipo de proyecto Class Library en C++, y en pocas horas ya lo había corregido y se podía descargar la nueva versión desde su web. Vamos, que un crack...

Thanks Emmet for your time and effort! We really appreciate it!

SaludoX.

No olvides suscribirte al feed RSS para enterarte de todas las actualizaciones del Txoko de Lonifasiko


4 comentarios:

Anónimo dijo...

Justo lo que andaba buscando. Solo que quisiera que me absuelvas una duda, ¿ahora que me descargué el zip no sé como se hace para instalarlo? Gracias.

Anónimo dijo...

Buenas,

Después de bajarte el zip de código fuente en VB.NET o C#, lo único que hay que hacer es abrir el correspondiente archivo de solución (.sln) con Visual Studio 2005 o 2008 (te convertirá el proyecto sin problemas). Compila los dos proyectos, primero el que contiene el código fuente (ProjectConverter) y luego el proyecto de instalación (ProjectConverterSetup).

Verás que el proyecto de instalación te ha generado bajo "ProjectConverter_CS\Setup\Debug" un fichero denominado "ProjectConverterSetup.msi". Ése es el instalable de la aplicación. Ejecútalo y ProjectConverter se instalará en tu PC, con lo que tendrás disponible la aplicación a través del menú contextual o botón derecho del ratón.

Espero que te funcione.

SaludoX.

Anónimo dijo...

Pues lo siento pero a mi no me funciona. Acabo de probarlo y cuando intento abrir el .sln con vs2005 me dice que la solución ha sido creada con una versión más reciente del programa y todo eso.
En resumen, no me ha servido de nada.

Anónimo dijo...

Buenas, ¿qué tipo de proyecto estás intentando convertir y en qué lenguaje está escrito? ¿C++, C#, ASP.NET, Winforms? Supongo que al convertir el proyecto de VS2008 a VS2005, te habrá creado un archivo "tuSolucion.v9.sln" (archivo original VS2008), y otro simplemente "tuSolucion.sln", el relativo a VS2005; ése es el que tienes que abrir...debería funcionar si tu proyecto no es "complicado".

Aunque también existe la posibilidad de que sea un bug de la herramienta; a mí ya me pasó y se lo mandé al tipo, que en seguida lo corrigió.

Si te sigue sin funcionar y no es un proyecto con código "confidencial", si quieres mándame el proyecto en VS2008 y lo intento yo, a ver si tengo mejor suerte ;-). Y como mal mayor, reportamos el bug para que lo intente arreglar ;-).

SaludoX.