Visual Studio: Where does it store "Set as startup project"?

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


Yes, it is stored in the .suo file.

Here's a similar post explaining why.


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.


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.