I have a c# application and I am mainly concerned with pushing out automatic updates to clients running my software. These updates can be anything from a new / patched dll to ne
There are a few different ones you can check out.
This one has been talked about/around for awhile, but I haven't heard any news of wether or not it's actually ready to be used yet
https://github.com/Squirrel/Squirrel.Windows
https://www.nuget.org/packages/NuSelfUpdate/
https://www.nuget.org/packages/NuGetUpdate/
Would recommend this one, as last time I opened a ticket he addressed it almost immediately.
https://www.nuget.org/packages/Sidewinder.Core/
None of them will be a 100% drop in solution because application updating is one of those things that's hard to generalize.
For me what I end up doing is one of two things
1) Use http://www.myget.org to host my updates, and roll my own system that downloads/restarts/updates things.
2) Roll my own with a component index on AWS S3. The xml lists the components and points to the url to get each update. From there your application decides how/when to stop/update/restart it.
Also, if I'm updating the main application, generally how I do it(If the application is already running)
If the application isn't running I do an update check/download/install on start(but that's only when it's critical that people are running the absolute latest).
In the end though, none of those frameworks will 100% fit your needs, because no scenario is the same, hopefully they get you most of the way though.