Advise needed for best way to proceed


I am currently trying to get a better setup/flow on our TeamCity server. First a little setup:

We have a rather large codebase written in .NET C# using a smattering of VS2008 (for Windows Mobile 6.5) and VS2010/VS2012.

Our code projects are divided among a number of solutions, and usually we use project references for, so any common project may reside in several solutions.
Our file structure it such, that most of the common projects, are gathered in one folder, the core projects in another and extensions in a third.

All builds are using the VS runners directly on the solutions.

Basically I have the following build configurations (there are more, but let's stay with these):

- Common - Build the common set of library assemblies.

- Core - Build the core set of applications, services and library assemblies.
     This references several projects and binaries from Common.

- Extensions - Builds extensions. Will have references to projects and binaries from Common and Core.

Now, I am trying to get this to build continuously without having TC build everything all the time.

I use Artifact dependencies but I have a hunch that I should use Snapshot dependencies, but I am uncertain if this is the best way.

I am not opposed to make changes in the structure of our codebase, but as it is rather large, I would prefer not to.

We are using TeamCity 8.0.1.

With hopes of speedy replies

Comment actions Permalink

I am still looking for an answer to this. What are the pros and cons to snapshot vs. artifact dependencies?

Comment actions Permalink

Hi Thomas,

We solved this problem by switching from assembly dependencies to project dependencies in our solutions. Yes, this means shared code gets recompiled multiple times, but it removes the dependency nightmare in TeamCity. You will have to manage dependencies in VS anyway, so why add another layer in TeamCity? It's been working well for us for a few years.



Please sign in to leave a comment.