VS2012 solution Rebuild cleans a project after it's built by a dependency

I have a solution that, among many others, contains 3 WiX installer projects (*.wixproj). Two installers and one bootstrapper. I'm not sure if the project type is relevant in this case, but I figure the more info the better.

The build is started by a VCS trigger and the main build step for the solution has the following settings:

Runner type: Visual Studio (sln)
Execute step: If all previous steps finished successfuly (zero exit code)
Solution file path: GridSmart.sln
Working Directory:
Visual Studio Microsoft Visual Studio 2012
Targets: Rebuild
Configuration: Release
Command line parameters: %system.define% (a custom parameter that defines several preprocessor symbols)

The bootstrapper project (Aldis.GridSmart.Client.InstallBootstrapper) has references to the two installer projects (Aldis.GridSmart.Client.Installer and Aldis.GridSmart.Client.BetaInstaller)

The projects end up being built in this order:
Aldis.GridSmart.Client.BetaInstaller
Aldis.GridSmart.Client.InstallBootstrapper
Aldis.GridSmart.Client.Installer


What happens is the InstallBootstrapper build step resolves the reference to the Client.Installer project and causes it to be built before continuing. Once the InstallBootstrapper build is
complete it then compiles the Client.Installer project again, which results in the project being cleaned but not rebuilt. So I'm left with what is effectively and incomplete build
even though the project was actually built.

Here's a pastebin of the relevent portion of the build log: http://pastebin.com/C4fGBFA1

The reason this is important is that we have a couple of build steps after the solution is built that creates an update package for our product. The update package requires the MSI from the Client.Instller project
but it can't be copied because it no longer exists.

When I manually compile the same solution by running a "Rebuild All" this doesn't happen.

Currently I'm working around this by having the build step run Clean and then Build instead of Rebuild, but I'd like to at least have some understanding of why this is happening.


Running TC 8.1 (build 29879)

Please sign in to leave a comment.