2
votes

I have lots of projects that share a common internally developed class library.

We use "continuous integration", where checkins trigger builds, tests and deployment.

We currently don't do anything fancy with branching or things like that.

But what we want to do really is

  • a) automatically update our client projects with any changes made to the shared library
  • b) trigger the build of those client projects, whenever a change is made to shared library.

For us simplicity is the key.

I notice when we set up builds, we can trigger builds from different workspaces, I assume that we can use this feature to trigger the build of the client?

But we would need to somehow distribute the new class library to these client projects, before the build was triggered....so that probably isn't the way to do it.

We can potentially include the share class library as code in all our client apps...does that work? Or is it a REALLY stupid thing to do?...it doesn't feel right (it feels like copy/paste code), but it is simple.

Any ideas...simple is good....text book "correct" is a nice to have.....

1
"include the shared class library as code", well we do that by simply adding the project of the library to the client solutions. So there is no code duplication, if that is what you worry about. Plus of course the triggering by changes to the library workspace. Works fine for us.René Vogt
ok, that IS simple, the shared library is quite large, so that is slightly painful, it isn't code duplication, but it is binary duplication...it doent feel quite right.....I'm assuming TFS doesn't get confused about having a project shared between multiples solutions?MrD at KookerellaLtd
Why binary duplication? I mean, do you intend to deploy that library to GAC or don't you have to deploy it with all client projects anyway? And no, TFS has no problems with that. We actually even do it across solution collections (which might really not be "text book correct").René Vogt
well it's binary duplication...in the sense that I assume a set of binaries are created on compilation...the shared binary would be recreated for all the client application solutions...who cares?....maybe not me...MrD at KookerellaLtd

1 Answers

0
votes

We're doing this in Jenkins, I expect you can do it in TFS, but we've jumped ship, storing libaries in local nuget repositories.

this isnt really an answer