48

Let's say a single solution (.sln) has 2 (.vcproj) named Proj1 and Proj2. By default, Visual Studio assigned Proj1 to be my startup project.

I set Proj2 to be my desired startup project.

Then I commit everything to my repository (excluding .suo).

I re-check out, and Proj1 is still the default startup project.

Does this mean Visual Studio store the startup information in the .suo file? But I dont want to commit that (?) since it's a user-specific file?

Or am I doing something wrong?

Note: I use Visual Studio 2008

sivabudh
  • 31,807
  • 63
  • 162
  • 228

5 Answers5

35

Yes, it is stored in the .suo file.

Here's a similar post explaining why.

Community
  • 1
  • 1
Andy West
  • 12,302
  • 4
  • 34
  • 52
  • 26
    Please do upvote the linked question.. but for the impatient, VS will take the first project entry in your sln as the default startup project - so text-edit your sln.. move your desired project entry to the top of the queue. Voila! – Gishu Aug 08 '13 at 06:30
19

As @Gishu and @misteraidan both said, Visual Studio uses the first project listed in the .sln file as the default startup project. If you have a primary project that should always be the default, just modify the solution in a text editor to list that project first in the list.

EDIT

Yes, it still works in Visual Studio 2019. By default, Visual Studio uses the first project listed in the solution file (.sln) as the default startup project. However, if you manually change the startup project inside Visual Studio, that setting appears to be stored in the .suo file located in the hidden .vs folder, and it overrides the sorted order in the .sln file.

However, if you close Visual Studio, delete the .vs folder, and then re-open the solution, whatever project is listed first in the .sln file regardless of project type will be used as the default startup project.

Matt Davis
  • 45,297
  • 16
  • 93
  • 124
  • @serg06, delete the hidden .vs folder, and try it again. See the edited answer. – Matt Davis May 22 '20 at 01:40
  • When I close VS, delete .vs, and reopen VS, it selects the wrong project, one which is currently 5th in the .sln file. I have no idea why it always chooses that project. It's the same one it chose before I moved my desired startup project to the top of the .sln. – serg06 May 22 '20 at 03:40
  • Not sure what to say. https://stackoverflow.com/questions/694730/why-is-set-as-startup-option-stored-in-the-suo-file-and-not-the-sln-file – Matt Davis May 22 '20 at 06:31
  • 1
    For those hitting this link, note that the .vs folder is a hidden folder. Unless you have Windows Explorer configured to show hidden folders, you won't see it by default, but that doesn't mean it isn't there. – Matt Davis Dec 03 '21 at 00:46
5

Yes, it gets stored in the .SUO.

Although this can be an issue if you're often checking out branches or deleting your trunk workspace and checking it out again, it only takes a second to set it, so hopefully it's not too big an issue. You should definitely keep the .suo files out of the repository if you can.

womp
  • 115,835
  • 26
  • 236
  • 269
0

The .SUO file may be hidden by default, to see it you may need to turn on "view hidden files" in Windows Explorer.

  • 1
    ...which should have been turned on within the first five minutes of settling into the computer, IMO. (Obviously that doesn't apply to other people's computers, but I really hate that this setting defaults to Off.) – Grault Dec 23 '15 at 19:54
0

Yes, it is .suo file, and yes it is a user-specific file: it is really what do you like to do for your current project debug. I think it is possible for different developer in the team who want to have different settings on this.

Dr. Xray
  • 918
  • 1
  • 9
  • 21