Skip to content

Rebuilding when nothing changed

Kirill Osenkov edited this page Apr 19, 2017 · 6 revisions

How to investigate rebuilding when nothing has changed

There is a class of problems with build where when you build twice, it still rebuilds fully the second time even though nothing has changed. This is called build incrementality issues. They can happen in MSBuild or in Visual Studio (in which case the VS project system's up-to-date-check decides to rebuild the project).

There are multiple tools to investigate and fix broken incrementality. Start with the blog posts below.

Consider using https://github.com/KirillOsenkov/MSBuildStructuredLog and search the build log for "Building target completely" and "out-of-date" messages.

Strings to search for in the build logs:

  • Building target "CoreCompile" completely
  • is newer than output
  • out-of-date