0

I would like to activate continuous integration for a Prism application on a TFS build server. Actually the build controller is not able to compile the application because it does not have the Prism Library. Prism is registered in my Visual Studio on my developing machine and the project simply reference it. I was wondering if I should checkin the library within the project or should I install the library on the build server.

So what practice do you use to integrate application using dependencies on a build server?

Ucodia
  • 7,410
  • 11
  • 47
  • 81

2 Answers2

1

In general, checking in the necessary Libs provides you with the advantage that setting up a new build controller requires less time.

We use a mixed approach on the matter:
- log4net, Rhino, NHibernate etc reside on a shared Dir within the source control
- Other packages that require setup and/or licensing (Infragistics, NCover etc) are installed on the build controller

I have only very basic knowledge on Prism, by 'Prism lib' do you actually mean the 5 Microsoft libraries
Microsoft.Practices.Composite.dll
Microsoft.Practices.Composite.Presentation.dll
Microsoft.Practices.Composite.UnityExtensions.dll
Microsoft.Practices.ServiceLocation.dll
Microsoft.Practices.Unity.Silverlight.dll

If yes, we would have placed them definitely within the source control

pantelif
  • 8,524
  • 2
  • 33
  • 48
  • 1
    Also, possibly a duplicate of [this](http://stackoverflow.com/questions/6400080/3rd-party-dlls-with-tfs-build-server) – pantelif Jul 08 '11 at 09:39
  • Well, I thought about this option but I have always heard that checking in assemblies was a bad practice because of their heaviness. But for me I do not see why it would be a bad practice as source control system as TFS uses delta difference. Your answer makes senses to me but I just hope to see more options. Thanks for the other thread also ;-) – Ucodia Jul 08 '11 at 23:44
1

I finally opted for a solution based on pantelif idea.

Instead of manually checking in and managing depedencies manually, I used NuGet to reference packages. Firstly it is perfectly suitable for source control as it checks-out any file required to build the project. Secondly it supports easy updates of the libraries.

Thanks for your help.

Ucodia
  • 7,410
  • 11
  • 47
  • 81
  • NuGet installs the packages on each project so if i have multiple projects that reference PRISM i have to check it in twice.. Anyone know how to alter this behavior to put the package on the solution level? – felickz Jul 29 '11 at 15:51
  • As of today, NuGet only references at solution level so if you really want to only check it once, you should move libraries at team project level and make references from there. But whether you use Prism in many or few solution, I do not recommend this. On one side, referencing at team project level involves the risk that when you update libraries, you could inadvertly break other solutions, so the more solutions using it, the bigger the damage is. On the other side, source control uses delta difference, so if you need it in only few solutions, the waste of space is not a concern. – Ucodia Jul 30 '11 at 17:18