Visual Studio Project Fixer scans your Visual Studio projects looking for errors which can cause Visual Studio to think the project needs building, even when you've just built it.
A graphical user interface and a command line interface are provided for interactive and automated use.
Currently we support .vcxproj (Visual Studio 2010-2017) and .vcproj (Visual Studio 2002-2008) file formats.
At the time of writing .dsp (Visual Studio 6) project files are not supported.
The files managed by a Visual Studio project are C and C++ source files, C and C++ header files and resource files. We've also added some file extensions that are not typically used by Microsoft, just in case someone is using these variants with Visual Studio. A full list of supported file extensions is shown below.
Source file extensions
Header file extensions
Resource file extensions
The types of errors detected by Visual Studio Project Fixer are:
•Incorrect case files
•Files that don't exist
Visual Studio Project Fixer gives you complete control over what type of errors you detect and also over what type of errors you choose to fix. You can do this automatically from the command line or have a more interactive experience via the user interface.
These are files that should be in the project but which are not.
For example you added a source file ImportantCode.cpp but forgot to add the corresponding header file ImportantCode.h.
Incorrect Case Files
These are files that are in the project, and that exist on disk, but the case of the names in the project doesn't match the case of the names on disk.
These are files that are in the project, but they are specified incorrectly and identify a file that doesn't exist.
For example a file uiWorkPackageEx.h is listed, but the file has been moved since it's creation and the correct path should be ..\..\svlCommon\uiWorkPackage.h
Files that don't exist
These are files that don't exist.
For example a file ..\..\testCode\usefulConstants.h. This file once existed but has been deleted (or moved).
These are files from a previous version of Visual Studio.
For example WinHelp files from Visual Studio 6.
These are Visual Studio dependency information files. These can get out of date and cause problems. Often deleting these files will fix build dependency errors. These files will be automatically rebuilt by Visual Studio.
Filters and backups
Visual Studio Project fixer automatically creates backups of any modified project. The backup has the date and time as part of it's filename, so it's easy to go back to a particular version.
The default setting is that backups are when projects are saved. You can change this value from the settings dialog.
To prevent applying any of the fixes to specific files in a project file, Visual Studio Project Fixer provides a filter system to allow you to identify filenames that should be ignored when found in a project file.
We have added an option to prevent modifying Visual Studio projects that have been moved. We detect a moved project by identifying source files that don't exist. The reason for this is that a source file that doesn't exist will not compile and the build will fail, whereas a header or resource file that doesn't exist (unless it's referenced by another file) will not cause the build to fail, although it may cause Visual Studio to think the build is out of date.
The default setting is that moved projects are not modified. You can change this value from the settings dialog.