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?
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).
来源:https://stackoverflow.com/questions/4323839/auto-patcher-efficient-auto-updater