Which files in a Visual C# Studio project don't need to be versioned?

13,303

Solution 1

Dont include
bin
obj
*.suo
*.user
_Resharper* (if you have Resharper)

Include
*.sln
*.csproj

You can also check the .gitignore file for visual studio projects on github.

Solution 2

.csproj defines the project structure. It is vital.

This is what I add to my global ignore list in Tortoise SVN:

*.suo *.user bin obj *.pdb *.cache *_svn *.svn *.suo *.user *.build-res TestResults _ReSharper*

Solution 3

Shouldn't be versioned:

  • .csproj.user is the user's project file settings (e.g. startup project)
  • .suo is the user's solution file settings

Should be versioned:

  • .sln is the solution file itself (what projects it contains etc)
  • .csproj is the project file

I'm not sure about "contentproj" but it sounds like it's a project file which should be under svn.

Solution 4

The .sln file defines your solution together with the .proj files (one for each project), so keep them in your svn!

You can skip the .suo file (personal settings - binary anyway) as well as the bin or obj folders. Also the .cache files can be left.

Solution 5

Just to add, anything that gets regenerated at build time, should be excluded. For example, files generated from the prebuild event or in some cases a custom tool.

Share:
13,303

Related videos on Youtube

Kai
Author by

Kai

Updated on December 03, 2020

Comments

  • Kai
    Kai over 3 years

    I'm new to Visual C# Studio (actually using the Express edition, but another developer is using the full version), and we are using version control (svn).

    It's acceptable to me to add the project files to the repository, since this repo is just for the two of us using Visual C# Studio. But it feels like there are some irrelevant files in there. Can someone familiar with Visual C# Studio project files tell me which files can safely be svn:ignored?

    Some suspect files:

    • project.csproj
    • project.csproj.Debug.cachefile
    • project.csproj.user
    • project.sln
    • project.suo
    • Content\Content.contentproj

    I'm sure the .sln is required, but what's this .suo? and the .csproj? Can/should any of these be generated by Visual C# Studio on loading a project?

    • mrsheen
      mrsheen about 12 years
      The sln is the solution file, the csproj is the c# project file. You will need both of these files. The suo is the solution user options file and as the name suggests you don't want that file. It just contains user options. Also all .csproj. files can also be ignored.
    • JMD
      JMD over 10 years
      msdn.microsoft.com/en-us/library/ee817674.aspx Explicit list from Microsoft there.
  • Sam Harwell
    Sam Harwell over 14 years
    That's not always the case. Files generated by a SingleFileGenerator, plus designer generated files associated with .xaml, .resx, and forms should be checked in.
  • leppie
    leppie over 14 years
    That's exactly why I said some cases.