Take the 2-minute tour ×

I want an auto updater that detect modified files (by comparing files on the client-side and a server) and only download modified files. I also want it to give me its status lively (To show it on a process bar or something)

The scenario is that there's about one thousand clients in a network, that use same application. If a new version of the application is available, they all have to get the new version. But, the bandwidth is limited, so it's not very efficient to give them a full installer each time. (Which we do currently)

I searched around a little, and I found IcePatch2. It do the exact thing I want: Getting the newest files from server when the patcher is run. But the problem is that clients wrote in C#, and I can't use IcePatch2 inside my application. (I have to run it as a separate process, or write a COM or something to interact with the IcePatch2Client)

So far, the best solution I found is to get .NET Application Updater Component and customize it to fit my needs. But I prefer a solution that dose not require me to maintain another application.

Any idea?

share|improve this question
You can post link, now) –  The_Smallest Dec 1 '10 at 11:45
Thanks! (^L^) I edit the question. –  Aidin Dec 1 '10 at 13:30
Fully running an updater inside your application doesn't work well. Windows locks the files of running programs so they can't be replaced. So you either need an outside patcher or a launcher which gets(almost) never patched. –  CodesInChaos Dec 1 '10 at 15:45
add comment

2 Answers

We use wyBuild.

It produces binary delta patches - even better than file-level. It also has a client auto-update component too: wyUpdate.

share|improve this answer
add comment

We use AppLifeUpdate. You can create update packages that contain only the chnaged files. I'm not sure if it does binary deltas though. It is a .NET component and can optionally use a service that you install to do elevated installer updates (only really needed for changes affecting all users on a system).

share|improve this answer
add comment

Your Answer


