Just a short blog entry to highlight an exceptionally cool project that a colleague of mine has been working on in his spare time: Refix. A .NET dependency management tool.
This tool attacks the problem of having a project with dependencies, where these dependencies themselves may have common, but different version, assemblies.
I’ve certainly had this problem many times: you have a solution that uses other third party assemblies all of which have common dependencies (such as log4net, perhaps), but different assemblies rely on different versions of this common item.
Refix helps you tackle this problem in two ways:
Firstly, it goes through your solution to work out if there is actually a common set of dependencies that can be used. If so it can re-write your project files accordingly.
If there isn’t, you can supply it with a list of compatible versions (e.g. tell it v 184.108.40.206 is compatible with v 220.127.116.11), and it can automatically insert the correct assembly redirects for you into the applicaiton configuration files.
It is looking to be an excellent tool so far. It is in the early stages, but completely useable and it tackles a problem that I’ve not seen solved in .Net before.
Check it out: