PDA

View Full Version : VC action building multiple configurations


DuncanL
03-09-2009, 05:10 AM
We have just experienced an issue with the multiple configuration support - mainly that we didn't even know it was there!

A developer added a new configuration - for argument's sake let's call this "Win32 Release Bob". The VBP action for that project was set to build "Win32 Release", but now it builds both configurations - which broke the build when the "Bob" config didn't work.

Looking in the help we discovered that this is intentional; and while a potentially useful feature in some cases; it also can cause problems. This leaves us open to potentially using the wrong build of a project, if for example a developer puts in a test version that matches "Win32 Release".

Is there a way to disable the partial matching and only ever build the named configuration? Other than telling developers not to do it (which won't get remembered after a few months! :) )

Thanks.

kinook
03-09-2009, 08:17 AM
For VC6, it's actually msdev.com (the VC6 command-line compiler, which the action calls to actually build a project) that determines which configurations to build. In our tests, multiple configurations are built only if the full name is not specified (i.e., Win32 Release matches only Win32 Release, Win32 Release Bob matches only Win32 Release Bob, while Release matches both).
http://www.kinook.com/VisBuildPro/Manual/makevc6projecttab.htm

For VC7 and later, the Make VS.NET action itself does implement matching of configurations, and specifying a configuration of 'Win32 Release' will match only that configuration and not one named 'Win32 Release Bob'. Specifying a regular expression like 'Win32 Release.*' would match both configurations.
http://www.kinook.com/VisBuildPro/Manual/vsnetprojectsolutiontab.htm

DuncanL
03-09-2009, 08:42 AM
OK; it may be something strange going on if the specified build configuration doesn't exactly match anything present in the project:

What we had was a single release build "Win32 Release MinSize". Someone then added "Win32 Release MinDependencies"

The action was set to build "Win32 Release" - which was working fine just building "Win32 Release MinSize"; until the second configuration came along and then it built both.

Switching the step to "Win32 Release MinSize" fixes the issue and only builds that one configuration.

From what you're saying of your tests, even if someone now adds "Win32 Release MinSize Bob", it won't get built?

kinook
03-09-2009, 08:50 AM
Correct.