11. Why Solution Maker?
Microsoft Visual Studio manages projects using solution (.sln) files. Every time a new project is created, Visual Studio puts it into a solution, and if such solution does not yet exist, Visual Studio creates one.
Visual Studio solution consists of projects and optional folders where projects can be grouped. A solution does not contain replace projects in any way – it is always a project that contains all information necessary to build its output. But solution simplifies project management by grouping related projects together and makes it possible to perform certain tasks on multiple projects at once (examples of such tasks are refactoring or building product binaries).
While the number of projects is small or maintained by small number of developers, all projects can be included in a single solution and managed using Visual Studio. Things get more complicated when code base grows and gets split into multiple layers. Some of the projects (e.g. Web applications) may require preparation of a development machine, and this may be out of interest for developers who work with different layer and never need other projects to be built or even loaded. In addition, there are project types that need to be excluded when performing certain tasks. For example, when calculating source code metrics it is recommended to exclude unit test projects, because test code is usually written using different guidelines and its inclusion in aggregated metrics will create a wrong picture of the team’s source code.
Solution Maker simplifies creation of Visual Studio solutions by automating the process. Instead of manually adding projects one by one developers can run Solution Maker either from a command line or using its user interface, and quickly generate solution files tailored to meet their needs.
2. How does Solution Maker work?
Solution Maker’s user interface has a single screen with input fields to specify the following information:
- A name of the solution file to be generated;
- A project root path for directories to be scanned in search for project files;
- Patterns to match project name to control projects that should be included or excluded from the resulting solution;
- Number of solution folder levels in case projects should be grouped inside the solution;
- Strategy to create and name solution folders
- Options to choose update mode in case the solution already exists.
Here is a blog post that describes how to use the various program's options. In addition to graphical user interface, Solution Maker can be executed from a command line using command-line options.
Solution Maker is written and maintained by Vagif Abilov (@ooobject).
Solution Maker is free and its source code available at https://bitbucket.org/object/solutionmaker/