Check if you're seeing the following output in the build pane:
InitializeBuildStatus: Creating ".unsuccessfulbuild" because "AlwaysCreate" was specified.
I've just fixed a bunch of these errors in one of our solutions here and all of these were caused by one of two issues:
- The project file referenced files that were no present in the source tree
- A custom build step either was supposed to generate a file but didn't, or the file ended up in the wrong place
In order to find out if there are missing files that trigger the perma-rebuild, you'll also have to enable Visual Studio's debug output as described in this stackoverflow answer.