Imagine that scenario:
L
^^
| \
| D
| ^
| /
X
Where X is an executable, D is a DLL, an L is a Lib. The arrow means "depends on".
I made changes on source of L. When I tried to compile and run X, the code that was executing was the OLD code of L. That happens because, when linking X, it is absorbing D code first, and it sees that D already has that code of L, and will not link with new code of L.
I have the problem of not knowing what D's I need to rebuild. If I would make a graph of my code base, it would be a very complicated one with LOTS of dependencies. Is there a way to build the solutions that are dependencies to X? Or at least, to discover them.
Because, now I am solving this that way:
1) Try to know what are the dependencies to X manually. It is very annoying and uncertain. I fall many times on the situation I described on top.
2) I have a script that recompiles everything of my code base. There are lots and lots of solutions that have nothing to do with X. This takes lots of time and resources, unnecessarily.
IMPORTANT NOTE: The projects are on separate solutions and cannot be merged into only one. The code base is huge and we don't want to have less modularity on it.