leora
leora

Reputation: 196449

Managing shared binary dependencies for multiple solutions

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.

Upvotes: 0

Views: 549

Answers (3)

Cédric Guillemette
Cédric Guillemette

Reputation: 2408

You may want to have a look at DEVPATH.

Other StackOverflow reference : Support for DEVPATH

Upvotes: 1

andrecarlucci
andrecarlucci

Reputation: 6296

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.

Upvotes: 1

Jakub Šturc
Jakub Šturc

Reputation: 35767

Is any reason for not putting shared assemblies to GAC?

Upvotes: 0

Related Questions