---
title: "Using TFS Integrator to manage complex project dependencies"
url: "https://osherove.com/blog/2007/1/28/using-tfs-integrator-to-manage-complex-project-dependencies.md"
canonical: "https://osherove.com/blog/2007/1/28/using-tfs-integrator-to-manage-complex-project-dependencies.html"
published: "2007-01-28T10:57:09"
updated: "2007-01-28T10:57:09"
tags: ["Team System"]
author: "Roy Osherove"
description: "One of the clients I went to today had an interesting dilemma relating to managing references in source control between projects. Their situation is not unlike many other companies: they have an infrastructure team that…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# Using TFS Integrator to manage complex project dependencies

By Roy Osherove January 28, 2007 In [Team System](https://osherove.com/blog/category/team-system)

**Historical article** · Originally published January 28, 2007; technical details may be outdated.

One of the clients I went to today had an interesting dilemma relating to managing references in source control between projects.

Their situation is not unlike many other companies: they have an infrastructure team that creates regular releases of the basic APIs that many internal projects in the company use to create applications.

The problem is, what happens when a new version is releases and the other dependent projects need to be updated with the new version of the framework? To make this harder - the framework may be composed of many dlls, and some project may not want to automatically accept the new reference to the new version of the framework, but keep building against the older one.

How do you allow an automatic update of the references for dependent selected project?

Team System (which is what they were examining against their current Perforce repository) does not have a solid answer for this. sure, you can do branching, shelving and merging like crazy and achieve this, but there is no simple solution.

Luckily, there is \*some\* sort of solution for this. It was created by a crazy Australian I got to meet at the last MVP summit, Mitch Denny. You can find his blog over at [www.notGartner.com](http://www.notgartner.com/) . Mitch created a project called [TFS Integrator](http://notgartner.wordpress.com/tag/projects/tfs-integrator/), that not only allows for creating a continuous integration solution , it allows what he calls "Dependency Replication" :

> Dependency Replication is a process that most development teams have to do as the scope of what they are trying to achieve grows. The idea is that within your organization you might have a set of common frameworks that you use and maintain. Rather than linking in the source code into each new project that you undertake you treat the framework like an internal product which you build separately.
>
> The problem you then have is integrating the updated binaries into the other projects that depend on them. This can be quite a time consuming process, so much so that teams will often give up and end up compiling hundreds of different versions of the same code into their code base - which creates a maintenance nightmare.
>
> TFS Integrator includes a dependency replication engine which extends the continuous integration feature. It does this by listening for the build completion even from TFS and using that to trigger the execution of some code which picks up the compiled build output and checking it back into Team Foundation Server in a specified location.
>
> The effect is that with dependency replication the feedback loop is complete and dependant components can be linked together.

It does require a .NET 3.0 runtime installed (it uses WCF under the covers) but if you install it on a separate machine it should be of no particular problem.

If all goes well, TFS Integrator should be able to solve my clients problem.

Another interesting resource for techniques on managing the visioning issues in source control [can be found in this blog post](http://manicprogrammer.com/cs/blogs/michaelruminer/archive/2006/09/07/88.aspx), which is quite thorough.

## Lessons on this topic

- [Tipping Point](https://courses.osherove.com/courses/beautiful-builds-and-continuous-delivery-patterns/tipping-point/) · Beautiful Builds and Continuous Delivery Patterns
- [APi Artifacts](https://courses.osherove.com/courses/beautiful-builds-and-continuous-delivery-patterns/api-artifacts/) · Beautiful Builds and Continuous Delivery Patterns

## More in Team System

[All posts in Team System](https://osherove.com/blog/category/team-system)

- Apr 29, 2007

    ### [TFS or not? Being a perfectionist in a realistic world](https://osherove.com/blog/2007/4/29/tfs-or-not-being-a-perfectionist-in-a-realistic-world.html)

- Mar 27, 2007

    ### [Microsoft acquired TeamPlain web client for TFS - Get your free download today](https://osherove.com/blog/2007/3/27/microsoft-acquired-teamplain-web-client-for-tfs-get-your-fre.html)

- Dec 20, 2006

    ### [Team Data and the Database publishing wizard](https://osherove.com/blog/2006/12/20/team-data-and-the-database-publishing-wizard.html)

- Dec 10, 2006

    ### [Custom Reports for Load Test Results from Team System](https://osherove.com/blog/2006/12/10/custom-reports-for-load-test-results-from-team-system.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
