Microsoft Visual Studio Integration

On a Windows platform projects and solutions that target the Microsoft Visual C++ Integrated Development Environment (MSVC) can be generated.

In earlier versions of MSVC, projects are recorded in text files with a dsp extension, and workspaces in text files with a dsw extension. Later versions of MSVC (from Visual C++ 7.0, released in 2002) use XML files (with extension vcproj for project files and sln for solution files). A solution is essentially a workspace.

Developers don’t normally edit these .vcproj and .sln XML files directly. Doing so would be inconvenient – because the format is verbose and repetitive. For example, there is no means to apply compiler switches to all configurations at once.

Instead MSVC provides wizards to create new projects and solutions, and sophisticated GUIs to edit the settings. One unfortunate result of this is that most developers don’t tend to factor out the build settings across projects even though MSVC supports a concept of inheritance of project settings. It seems that normal practice tends to be dictated by the wizards, and the wizards don’t promote sharing of settings amongst projects.

It is claimed that the textual representation ends up being easier and simpler than the MSVC approach based on GUI editing of settings. This advantage is greatest when there are large teams and complex configuration requirements.

The Xcpp Build System calculates .vcproj and .sln files from the .xcpj and .xcws files. Therefore developers can edit, build and debug projects/solutions in MSVC in the normal way with no limitations whatsoever.

Links