For normal source code projects, when you ask Visual Studio to build the project it will only build it if it is considered out of date. (The documentation for the /build command line switch confirms this.)
However, for setup projects it seems that Visual Studio always builds them, regardless of whether or not the dependencies are up to date. This happens even for a simple scenario where the setup project contains only the primary output of another project.
Why do setup projects behave this way? Is there a way to change this behavior?