Cómo... en .NET

Problemas al abrir .sln de Visual Studio 2005

Publicado el 31/Jul/2006
Actualizado el 31/Jul/2006
Autor: Guillermo 'guille' Som

Posiblemente, al menos si tienes instaladas las dos últimas versiones de Visual Studio, que al intentar abrir un fichero .sln, este no reaccione... aquí te explico una de las causas y cómo solucionarlo.

 

 

Te cuento cual es el problema del que quiero explicarte la solución, ya que sin problema, pues... la solución no sirve de mucho, ¿no?, pues eso...

En mi equipo, en uno de ellos, tengo instaladas dos versiones de Visual Studio para .NET, además de la versión que incluye el Visual Basic 6.0, (pero esa no afecta al "problema" que te voy a contar). Una es la versión 2003 y la otra la versión 2005, versiones "normales", no Express, que para esos casos no se si el problema afecta.

Bueno, a lo que vamos, cuando instalas el Visual Studio 2005, el icono de los ficheros de solución (.sln) tienen un icono diferente al de las versiones anteriores, de hecho, dependiendo de que versión de Visual Studio para .NET tengas, se mostrará un número en ese icono, para la versión 2002 (la primera de Visual Studio .NET) muestra el número 7, si esa solución es para Visual Studio .NET 2003, mostrará el número 7.1, y si es una solución de Visual Studio 2005 (recuerda que a partir de la versión 2005, el Visual Studio deja de "apedillarse" .NET), muestra el número 8. Además, en la versión 2005, si esa solución es de un lenguaje en particular, mostrará el "icono" adecuado a ese lenguaje, tal como puedes ver en la figura 1, en la que hay iconos de cada una de las versiones de Visual Studio, además de una solución "exclusiva" de Visual Basic 2005.

Figura 1. Las versiones de los .sln de Visual Studio
Figura 1. Las versiones de los .sln de Visual Studio

Cuando hacemos doble click sobre el icono, se usará la versión de Visual Studio que corresponda, y en caso de que no tengamos la misma versión con la que se creó, se usará la versión más reciente, en mi caso el Visual Studio 2005, con el correspondiente "asistente" de migración.

Esos números, en realidad "se supone" que corresponden con la versión de Visual Studio, que aunque se llamen .NET, 2003 ó 2005, en realidad siguen la numeración "antigua", por tanto, la primera versión de Visual Studio .NET, (a la que también se la llama 2002), es en realidad la versión 7.0, la siguiente, (la conocida como Visual Studio .NET 2003), es la 7.1, y la última, (Visual Studio 2005), es la versión 8.0.

Todos estos números de versiones de Visual Studio, son numeraciones "internas", aunque, como vemos en la figura 1, también "salen a flote". Pero no confundamos esos números de versiones con los números de versiones de "formato" de los ficheros .sln, ya que estos también tienen sus números de versiones, por ejemplo, el formato usado por la versión 2002 de Visual Studio .NET (sí, la versión 7.0), es también la versión 7.0 del formato de los ficheros .sln. Sin embargo, el número de formato de los ficheros creados con Visual Studio .NET 2003/7.1 es en realidad el 8.0. Y por último, el formato de los ficheros .sln de Visual Studio 2005/8.0 es el número 9.0. ¡Que follón! ¿verdad? pues sí... de todas formas esos números de formato de los ficheros .sln no vienen a cuento, al menos para lo que te voy a comentar, pero... te lo digo, más que nada, por curiosidad, es que... en fin... bueno, ya sabes... algunas veces me enrollo yo solito, así que... ¿de que te extrañas? pues eso...

Bueno, vale, si que vienen a cuento, al menos si eres "curiosillo" y te gusta mirar "por dentro", es decir, mirar en el contenido de los ficheros .sln, ya que estos, al fin y al cabo, no son más que ficheros de texto, y los podemos ver y abrir con cualquier editor de textos.

Y si lo has abierto alguna vez, verás que el contenido (para las cuatro versiones mostradas en la figura 1) son estos, los cuales coinciden con los cuatro mostrados en la susodicha figura, y que en el caso de los dos de Visual Studio 2005, además del número de formato, contiene para que lenguaje es, o mejor dicho, con que producto se creó originalmente:

Microsoft Visual Studio Solution File, Format Version 7.00

Microsoft Visual Studio Solution File, Format Version 8.00

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Basic Express 2005

Como ves, el número de versión que contiene es el del "formato" del fichero, no del número "interno" de la versión de Visual Studio.

Sí, ya se que ya los has visto por dentro, y también se que alguna que otra vez lo has modificado.

¿Por qué lo se?

Porque si has llegado a leer hasta aquí, es que te habrá pasado lo que cuento en este "articulillo", je, je, eso o es que eres una persona "curiosa", así que.. bueno... sea por la razón que sea... te voy a explicar otra "evidencia" antes de contarte el desenlace final.

Supongamos que has abierto uno de los ficheros .sln de Visual Studio 2005, y que lo has modificado, lo has guardado y... puede que por esas circunstancias de la vida, el editor de textos que has usado, en lugar de guardarlo con el formato "adecuado", lo ha guardado usando la codificación "estándar" de Windows (ANSI), o si eres de los que han trabajado con la clase Encoding, has usado el valor Encoding.Default.
Si es así, seguramente el icono habrá cambiado al mostrado en la figura 2, que si te fijas, no muestra ningún número de versión:

Figura 2. El icono de una solución de VS2005 (mal grabada)
Figura 2. El icono de una solución de VS2005 (mal grabada)

Y si has intentado abrirlo, pues... ¡tururú!
Ni caso te ha hecho...

Nota:
Aclaro nuevamente que todo esto que estoy explicando, a mi me ocurre, y en mi caso, tengo las versiones 2003 y 2005 de Visual Studio para .NET instaladas, y funcionando correctamente, es decir, que no es que sea que fallen, no, ya que las dos funcionan bien.

La solución que se me ocurrió para abrirlo es usando el menú contextual (el que sale con el botón derecho o secundario del ratón), pero en ese menú solo aparece Abrir y Abrir con.
Al mirar en las opciones de Abrir con, tengo tres posibilidades (ver la figura 3):

  • Microsoft Visual Studio Version Selector

  • Microsoft Visual Studio .NET 2003

  • Elegir programa...

Figura 3. Las opciones de Abrir con
Figura 3. Las opciones de Abrir con

Ni que decir tiene, que si el proyecto es de Visual Studio 2005 (como el mostrado en la figura 3), al elegir la primera opción, no hace nada... ¡no lo abre!
¿Por qué?
Ni idea... de verdad.

Lo malo es que si pulsamos en Elegir programa... no muestra el Visual Studio 2005, y aunque lo seleccionemos manualmente, seguirá apareciendo como "Version Selector", es decir... que nada que hacer.

Bueno, tampoco es eso, ya que "nada que hacer" no es la solución, porque nos podemos ir al Visual Studio 2005 y abrirlo desde allí... y se abre, y funciona y todas esas cosas, pero... ¡siempre lo tendremos que abrir de esa forma!

Soluciones, (en plural, ya que son varias), una de ellas, la que te acabo de comentar.
Otra solución, (la que se me ocurrió antes de "descubrir" porqué ocurría), consiste en crear una nueva entrada en el menú contextual de las extensiones .sln, y tuve la "brillante" idea de llamarla "Abrir con Visual Studio 2005" (ver figura 4).
En ese "enlace" le indico el path del Visual Studio 2005 (abreviando es: Common7\IDE\devenv.exe anteponiendo el path de Visual Studio 2005).

Figura 4. Más opciones para abrir y Abrir con en un .sln
Figura 4. Más opciones para abrir y Abrir con en un .sln

Pero el motivo de que no se abra usando el Selector de Visual Studio, por extraño que parezca, es porque el fichero .sln NO está grabado en formato UTF-8.
Sí, por eso... curioso, ¿verdad?
Pues eso, que me dio "el punto" de abrirlo con mi editor de textos, lo guardé con formato UTF-8 y... ¡tachachán! se volvió a mostrar el número 8, y desde entonces se abre sin problemas.
Por eso, (como puedes ver en la figura 4), en Abrir con, también está mi editor de textos, porque cuando lo voy a modificar, siempre uso mi programilla, porque entre otras cosas, respeta el formato con el que se guardó, o en su defecto, puedo elegir el formato (o codificación) con el que lo quiero guardar.

No sabes la de quebraderos de cabeza que me dio en su día... y la de veces que cambié las pilas de mi ratón inalámbrico... je, je, sí, al principio pensaba que no se abría porque las pilas estaban agotadas... ya sabes que soy más burro que... en fin... catetillo de pueblo que es uno y pasa lo que pasa...

 

Ya se que tu no eres tan "torpe" como el Guille, pero... por si te ocurre alguna vez, que... en fin...

Nos vemos.
Guillermo

 



Ir al índice principal de el Guille