¿Por qué la opción “Establecer como inicio” está almacenada en el archivo suo y no en el archivo sln?

Parece que esta configuración debe almacenarse en el archivo de la solución para que se comparta con todos los usuarios y parte del control del código fuente. Como no controlamos el archivo suo, cada usuario debe configurarlo por separado, lo que parece extraño.

¿Por qué debería ser una preferencia no específica del usuario?

Si tengo una solución con 10 archivos, y un desarrollador está probando / usando una de esas herramientas principalmente, ¿por qué debería afectar eso a lo que empiezo?

Creo que MS tomó la decisión correcta en este caso. El proyecto que quiero iniciar está lejos de ser necesariamente el proyecto que otros desarrolladores quieren comenzar.

Es absolutamente necesario que todos puedan definir su Proyecto de Inicio por sí mismos, como Jon ya ha dicho . Pero tener un predeterminado predeterminado sería genial, y como puedo ver, ¡es posible!

Si no tiene un archivo .suo en su directorio de soluciones, Visual Studio elige el primer proyecto en su archivo .sln como el proyecto de inicio predeterminado.

  1. Cierre su Visual Studio y abra el archivo .sln en su editor de texto favorito. Comenzando en la línea 4, verá todos sus proyectos encapsulados en las líneas ProjectEndProject .

  2. Corte y pegue el proyecto de inicio predeterminado deseado en la posición superior.

  3. Borre su archivo .suo.

  4. Abra su solución en Visual Studio. Ta daa!

¿Hay algún premio especial si sabes algo que Jon no sabe? 😉

En la mayoría de los casos, tiene sentido tener un valor predeterminado en esto.

Sería mucho mejor acomodar un proyecto de inicio predeterminado y almacenarlo en el archivo .sln, pero puede ser anulado por un desarrollador en su archivo .suo. Si la configuración de inicio no se encuentra en el archivo .suo, se usará el proyecto de inicio predeterminado en .sln.

En realidad, esto ha sido sugerido en UserVoice de Visual Studio .

Escribí una pequeña utilidad de línea de comandos para Windows llamada slnStartupProject para configurar el proyecto de inicio automáticamente:

 slnStartupProject slnFilename projectName 

Personalmente lo uso para configurar el proyecto de inicio después de generar la solución con cmake que siempre establece un proyecto ficticio ALL_BUILD como el primer proyecto en la solución.

La fuente está en GitHub. Tenedores y comentarios son bienvenidos.

Si está utilizando GIT, puede confirmar el archivo SUO predeterminado y marcarlo como sin cambios usando

 git update-index --assume-unchanged YourSolution.suo 

Funciona también si desea tener más de un proyecto en su grupo de inicio predeterminado. La única desventaja que conozco es que este comando debe ser ejecutado por todos los que no quieran confirmar el archivo SUO.