visual-studiosolutionvcproj

How to have different Project Dependencies for each Project Configuration?


I would like to have different Project Dependencies depending on which Project Configuration I'm currently building.

For example, I don't want to build and link SomeTestLib.vcproj in Release configuration, but I'd like to build and link to it in Debug.

One solution, that sorta works, is to use conditional compilation macros:

#ifdef DEBUG  
#pragma comment( lib, "SomeTestLib" )  
#endif

But in this case, the debugger and IntelliSense don't work for SomeTestLib.
Is there a .sln or .vcproj hack that I could use?
Thanks.


Solution

  • After searching Google for days, I finally gave up on finding a solution to this problem and blew a VS developer, who gave me the workaround for this problem (actually, I tried a bajillion different things on my own to find this).

    Apparently, the IDE isn't smart enough to figure out that you've disabled building for a particular library under a given configuration and to not add that project's output to the linker command line for projects that depend on it. I'm sure that you are aware of this.

    However, since it is just pasting the output line from the library project into the command line of the dependent project, setting the output line to " " will result in NOTHING being added to the linker command line on dependent projects!

    Hopefully, this problem will be remedied in Visual Studio in the future. I remain optimistic, because it is my favorite IDE, and I am always impressed by the features it supports. However, some of the VS help threads that I've seen say that this bug is "by design", so maybe they won't fix it. It seems easy enough to do, though.

    Anyways, to summarize:

    Please note that this workaround will give you errors if you Build or Clean the disabled library project. If you just build your solution, it will be skipped on disabled configurations, so you won't get errors.

    Hope this helps!

    Daniel