Visual Studio or VS is my weapon of choice.
But sometimes, it’s stupidity can’t be expressed with words…
Sometimes, Visual Studio will always rebuild projects, even though they have recently been built and there are no changes. If you
build, and then
run the project will build. If you haven’t disabled the “projects out of date”-dialog, it will pop up and ask you to rebuild.
Within VS, it will match a set of rules to figure out if a project is up to date or not.
Here is how to find out what rules are causing a project to always build.
This applies to both C# and C++ projects.
The simplest way to discover this problem, and probably the most annoying about this is this popup box when running the project (unless you’ve disabled this dialog).
Another clue is output text. Regardless how many times you build the project, it’s never up to date.
1>------ Build started: Project: always-build, Configuration: Debug Win32 ------ 1> always-build.vcxproj -> R:code-samplesvisual-studio-always-buildingDebugalways-build.exe ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
The first dialog will only show when “prompt to build” is selected.
devenv.exe.config as Administrator. Default path for VS2013 is
C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEdevenv.exe.config.
Add this section to the configuration file.
<system.diagnostics> <switches> <add name="CPS" value="Verbose" /> </switches> </system.diagnostics>
Download and run DebugView from Microsoft (https://technet.microsoft.com/en-us/library/bb896647.aspx).
Build the project.
In DebugView, you’ll see many lines of diagnostics information. One line in particular is the interesting one, that’s the line with
not up to date because. If you can’t find that line, select the top line and hit
Ctrl-F to open the search dialog, and search for
In this case, it’s because it’s missing a file referenced in the solution,
 Project 'R:code-samplesvisual-studio-always-buildingalways-build.vcxproj' not up to date because build input 'R:CODE-SAMPLESVISUAL-STUDIO-ALWAYS-BUILDINGNON-EXISTING-HEADER.HPP' is missing.
Remove that file from the solution, and try to rebuild.
When you get this text from the output window, you’re successful.
========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
Just don’t forget to revert / delete the diagnostics settings in devenv.exe.config…