We are working with some huge Visual Studio 2010 solutions with a great many static library projects shared between the two. After building either of these solutions the other solution will complain that many (but not all) of the projects are out of date, though actually building naturally does next to nothing and is almost instant.
After following the steps on this question on debugging MSBuild project dependencies I can see many lines of the following messages indicating that the projects are considered out of date because of a "different evaluation fingerprint":
[8444] Project not up to date because the last build has different evaluation fingerprint.
[8444] devenv.exe Information: 0 :
[8444] Project not up to date because the last build has different evaluation fingerprint.
[8444] devenv.exe Information: 0 :
I have come up completely blank while trying to find out what an MSBuild evaluation fingerprint is, where they come from, or what could cause them to be off like this.
Creating new project files is a non-starter given their shear size, the complexity of their configuration requirements, and the lack of enough time in our schedule for cleaning up small annoyances like this.
What are MSBuild evaluation fingerprints and how are they determined?