Pourquoi l’option «Définir comme démarrage» est-elle stockée dans le fichier suo et non dans le fichier sln?

Il semble que ce paramètre soit stocké dans le fichier de solution afin qu’il soit partagé entre tous les utilisateurs et une partie du contrôle du code source. Comme nous ne vérifions pas le fichier suo, chaque utilisateur doit définir ceci séparément, ce qui semble étrange.

Pourquoi devrait-il être une préférence non spécifique à l’utilisateur?

Si j’ai une solution avec 10 fichiers et qu’un développeur teste / utilise principalement l’un de ces outils, pourquoi cela devrait-il affecter ce que je lance?

Je pense que MS a fait le bon choix sur celui-ci. Le projet que je veux lancer est loin d’être le projet que les autres développeurs veulent lancer.

Il est absolument nécessaire que tout le monde puisse définir son projet de démarrage lui-même, comme l’ a déjà dit Jon . Mais avoir une version par défaut dédiée serait bien, et comme je peux le dire, c’est possible!

Si vous ne disposez pas d’un fichier .suo dans votre répertoire de solution, Visual Studio choisit le premier projet dans votre fichier .sln comme projet de démarrage par défaut.

  1. Fermez votre Visual Studio et ouvrez le fichier .sln dans votre éditeur de texte préféré. À partir de la ligne 4, vous voyez tous vos projets encapsulés dans les lignes ProjectEndProject .

  2. Coupez et collez le projet de démarrage par défaut souhaité à la position supérieure.

  3. Supprimez votre fichier .suo.

  4. Ouvrez votre solution dans Visual Studio. Ta daa!

Y at-il un prix spécial si vous savez quelque chose que Jon ne sait pas? 😉

Dans la plupart des cas, il est logique d’avoir un défaut à cet égard.

Il serait préférable de gérer un projet de démarrage par défaut et de le stocker dans le fichier .sln, mais il peut être remplacé par un développeur dans son fichier .suo. Si le paramètre de démarrage est introuvable dans le fichier .suo, le projet de démarrage par défaut dans le fichier .sln sera utilisé.

En fait, cela a été suggéré sur UserVoice de Visual Studio .

J’ai écrit un petit utilitaire de ligne de commande pour Windows appelé slnStartupProject pour définir automatiquement le projet de démarrage:

 slnStartupProject slnFilename projectName 

Je l’utilise personnellement pour définir le projet de démarrage après avoir généré la solution avec cmake qui définit toujours un projet ALL_BUILD factice comme le premier projet de la solution.

La source est sur GitHub. Les fourchettes et les commentaires sont les bienvenus.

Si vous utilisez GIT, vous pouvez valider le fichier SUO par défaut et le marquer comme inchangé en utilisant

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

Cela fonctionne également si vous souhaitez avoir plusieurs projets dans votre groupe de démarrage par défaut. Le seul inconvénient que je connaisse est que cette commande doit être exécutée par tous ceux qui ne veulent pas commettre le fichier SUO.