views:

178

answers:

2

Ok we have a number of solutions all with a lot of shared binaries:

what we do is the following.

In a shared drive we have this following layout where there is a directory for every binary dependency and a sub directory for every version

BinaryDep1
-----------Volatile
-----------1.0
-----------1.1
-----------1.2

BinaryDep3
-----------Volatile
-----------1.0
-----------1.1
-----------2.2

BinaryDep3
-----------Volatile
-----------1.0
-----------1.1
-----------1.2

In our solutions we have a XML file that lists out all of the dependencies and versions. We have a script that then goes tothe shared drive and download the dependencies into a sub folder of a solution called /ext

This works very well but has a few flaws that we are looking to improve and i wanted to get people's feedback.

  1. We have many solutions so if they all depend on the same version of a binary dependency then we get one copy per solution (as its supposed to be self contained). So if i have 5 solutions that all depend on Syncfusion, i get 5 copies of syncfusion on my desktop. The two issues here are 1) slow download time (5x more than i need to) and takes up lots of disk space.

We like the model where have a local sub directory per solution with /ext so we never have to change project references but these seem like competing forces.

any ideas on how to normalize teh download so we are not downloading 5x the data and same the disk size without having to go to manually updating project references where i have to change reference in VS for every version upgrade.

A: 

Is any reason for not putting shared assemblies to GAC?

Jakub Šturc
i was always told to avoid the GAC at all costs
ooo
A: 

What about the same struture in all developer machines?

Like:

d:/projects
d:/projects/ext (the shared libraries you need here)
d:/projects/project1
d:/projects/project2
d:/projects/project3
d:/projects/project4
...

ps: I love conventions.

andrecarlucci