Smart dll deployment in .net

We currently have an application that is approximately 22 megabytes. Our current deployment methodology deploys the application on each of our client servers and uses a small updater and copies all files to local PCs if a new version is available. The problem is that 22 megabytes takes a little longer than we would like to promote updates. Moreover, we do an update every 2 weeks. We are looking for a way to reduce time.

Our initial thought was that local PCs only copy DLLs that have changed since the last deployment. We have some problems with this, because timestamps make it difficult to get the exact file hashes for comparison. Version numbers may work fine, but we will need to find a way only for the file version if the code has changed.

Just wondering if anyone had success or recommendations for handling a similar process.

+4
source share
3 answers

We do a lot of pushing files internationally on parts of the equipment that we work remotely.

Our solution was to create a special tool for this (in fact, there are many other things) that performs a kind of β€œdelta copy” - i.e. only pushes portions of files that have changed.

This frees you from worrying about file timestamps, etc. - the file that you end at the far end is a byte for the byte, identical to the nearest, but if the only thing that has essentially changed is an internal time stamp, then very little data will need to be moved along the wire.

We used an algorithm based roughly on how rsync works ( http://samba.anu.edu.au/rsync/tech_report/ ), although we wrote it from scratch in C #.

However, in your situation, it may actually be easier to simplify the configuration of rsync and the batch file to invoke it with the correct environment / settings. There is a rsync version for Win32 here: http://www.itefix.no/i2/node/10650 , which I use successfully.

+3
source

Timestamps do not affect hashing, but updating the version number will certainly change the hash.

+1
source

See if ClickOnce deployment meets your needs.

0
source

All Articles