Determining cross-project dependencies
We have share code libraries that are referenced across team projects but stored in the source tree under the project that originated them.
For example, say we have the following source tree:
$/
$/TeamProject1
$/TeamProject1/Solution1
$/TeamProject1/Solution1/ObjectModelLibrary1
$/TeamProject1/Solution1/ConsoleApp1
$/TeamProject2
$/TeamProject2/Solution2
$/TeamProject2/Solution2/ConsoleApp2
So TeamProject1 defined a C# class library called ObjectModelLibrary1, and now Solution2 is referencing that code in place. So from a workspace standpoint, Solution1 references ConsoleApp1 and ObjectModelLibrary1. Likewise, Solution2 references ConsoleApp2 and ObjectModelLibrary1.
So my question is how can I implement Continuous Integration builds properly here so that a CheckInEvent on ObjectModelLibrary1 triggers builds of both TeamProject1 and TeamProject2.
I already have CI working fine for a single project hierachy. I looked at CheckInEvent further to see how I might build this dependency tree up on receipt of a CheckInEvent but nothing is jumping out at me.
I am using http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/ConIntTmFndBld.asp as the basis of my CI implementation. The only thing I can think of is to crawl all the solution files at startup, build a team project dependency map from that, and trigger builds accordingly as CheckInEvent's are received.
Any more elegant approaches out there?
Thanks!

