What does the .csproj file do?

Mircea picture Mircea · Jun 22, 2011 · Viewed 36.1k times · Source

Usually a C# project has a .csproj file associated with it. What is that file for? What data does it contain?

Answer

ChrisF picture ChrisF · Jun 22, 2011

Basically the .csproj file contains the list of files in your project, plus the references to system assemblies etc.

There are a whole bunch of settings - Visual Studio version, project type, Assembly name, Application Icon, Target Culture, Installation Url,...

Everything you need to build your project. While you could assume that you need everything in the current folder, having an explicit list allows you to organise them logically both on the disk and in the project so you can more easily find the files you want.

It's just XML so you can open it in your favourite text editor and take a look.

You get one .csproj file per assembly and the .sln (solution file) ties together all the assemblies that make up your project.