Visual Studio organizes your source code in Solutions and one or more projects.
A solution is a container for one or more related projects, along with build information, Visual Studio window settings, and any miscellaneous files that aren't associated with a particular project.
A solution is described by a text file (extension .sln) with its own unique format; it's not intended to be edited by hand.
Visual Studio uses two file types (.sln and .suo) to store settings for solutions:
Extension |
Name |
Description |
.sln |
Visual Studio Solution |
Organizes projects, project items, and solution items in the solution. |
.suo |
Solution User Options |
Stores user-level settings and customizations, such as breakpoints. |
Different projects in Visual Studio may target different development languages.
It is very well possible to use C# and X# projects next to each other in the same solutions.
And you can set dependency relations between projects for different development languages without problems.
Visual Studio will automatically determine the order in which projects must be build.
If you want you can control this order by opening the Solution Properties dialog (right click on the Solution node in the Solution Explorer and choose "Properties").
The image below shows the Solution Properties dialog for the X# runtime solution.
On this dialog you can also set which project needs to be the "startup project" when you start debugging inside Visual Studio.
As you can see you can also start multiple projects at the same time.
The "Action" combo offers you the choice to Start a program or to start Debugging a program when you start the debugger inside Visual Studio.
On the "Project Dependencies" tab page you can set the dependencies between projects
On this dialog you can see that 2 projects are already marked with a check box: these are projects that are added in the references list of the XSharp.VO project.
Other projects have a gray checkbox, which means that they depend on XSharp.VO, so you cannot make XSharp.VO dependent on them (that would introduce a circular relation). Other projects ave w hite checkbox. You could add these to the "Depends on:" list for XSharp.VO if you want, which would mean that Visual Studio would always build them before XSharp.VO is built.
From this dialog you can also open the "Configuration Manager" with which you can maintain the various Configurations (Normally Debug and Release, but you can to that it you want and the various "Platforms". Normally there is only one Platform called "AnyCpu". But if your project contains C++ code you may have a x86 and a x64 platform as well. This configuration manager is also available in the Visual Studio Build menu.
See the next chapter for more information about build configurations.