How do I set up MS Visual Studio 2005
project dependencies such that making
a change in a higher level project
does not force a recompile of all
other projects it depends on.
I think you mean:
How do I set up MS Visual Studio 2005
project dependencies such that making
a change in a higher level project
does not force a recompile of all
other projects that depend, possibly
indirectly, on it?
I think you are using terms like "higher" and "lower" in the opposite sense than I would -- for a pair of projects, I think of the "lower" project as being the one that depends on the other one. It could be that your "mental diagram" is simply vertically flipped with respect to mine, which is fine; or it could be that you have misinterpreted what the Project Dependencies box is asking for, which is not. It is asking for the list of projects that the named project in the drop-down list above directly depends on, namely those projects that must be up-to-date (which possibly requires rebuilding) before the named project can be built.
So: could you please clarify in what sense you intend "higher" and "lower" to be taken.
What VC++ should (and I'm certain does) do when you ask to build some project X is check whether all projects that X depends on, either directly or indirectly, are up-to-date, and build any that are not. When this building occurs, each project is always built after any projects that it depends on, either directly or indirectly. Note that projects may require rebuilding even if they are not changed themselves -- e.g. if X depends on Y and Y depends on Z, then changing Z and requesting X to be built entails first building Z, then Y (which was not changed), then X. If there are even "lower" (in my sense) projects that depend on X, they will not be built when you request X to be built.