views:

1435

answers:

3

Hello

I have a visual studio solution with a number of projects. Configuration manager is carefully configured to build all projects except one ( the one skipped is a test project ). After building solution in command-line i got following:

"building XXX Debug|x64"

------ Skipped Build: Project: AAA ------

------ Skipped Build: Project: BBB, Configuration: Debug Win32 ------

Project not selected to build for this solution configuration

------ Build started: Project: CCC, Configuration: YYY Debug ia64 ------

< here goes build >

As you can see, project BBB is skipped becouse it is not selected in configuration manager, project CCC and rest build ok and project AAA is skipped with NO REASON GIVEN. Anyone knows why visual studio may skip project build without any reason? All configuration names ( XXX, YYY Debug, Debug ) and platforms ( x64 / Win32 / ia64 ) are correctly configured in configuration manager.

+2  A: 

Is project AAA selected for configuration Debug|x64 ?

Also I had the same situation when freshly downloaded solution (without .soa file) had the default configuration to Itanium, so all system without its support were skipping all solution projects to build. Properly build was starting only after selecting win32 manually.

abatishchev
yes, AAA is selected for "Debug|x64" to build "AAA Debug|ia64". It builds inside IDE perfectly.
Eye of Hell
Ok. How do you compile your solution with command line? using devenv.exe /.. or msbuild.exe /.. ?
abatishchev
devenv.exe, it's bundled with vs2005
Eye of Hell
devenv IS VS2005 :) use msbuild! this is APPROPRIATE batch builder by Microsoft. it's free and most supported. using devenv is not good idea, not best practice, not what it professional should do
abatishchev
A: 

Run the project from the command line using MSBUILD.exe and set the parameter for logging (verbosity) = detailed or diagnostic. You should then get me more output telling you why msbuild considered skipping the one in question. e.g.

msbuild XXXX.csproj /verbosity:detailed

Nb. Diagnostic output is very very verbose

Preet Sangha
unfortunately i'm limited to devenv.exe due to company policy. It does not have /verbosity command-line key :(
Eye of Hell
set the environment var: verbosity=diag
Preet Sangha
A: 

Normal builds within Visual Studio are incremental: Visual Studio will skip building a project if it thinks none of the source files have been changed - note that it only checks code files, not resources or other "stuff".

Try doing a clean build by selecting Build|Clean Solution then Build|Rebuild Solution and see if you get the same results.

You may need to manually clean up the build artifacts for each project (by default, the \Bin\ and \Obj\ subdirectories within each project directory).

Bevan
i'm using /clean and /buildthe build process is straightforward: temp folder created, latest version of solution and projects fetched from sourcesafe, build performed, temp folder deleted. No intermediate artifacts, cache etc can survive.
Eye of Hell