I develop a number of open source applications, some of them are updated and some are just a proof of concept.
When it came to deciding the best method of upgrading software I chose to use the ClickOnce route that is present within Visual Studio, not only does it automatically install any necessary .Net Framework files missing but it can also download updates from a specified web server on application start-up as well as at a time of my own choosing.
I feel it's the simplest way of pushing out updates to my applications, there are probably more elaborate methods but bearing in mind my applications are open source and there are no corporate requirements or deadlines I feel ClickOnce is more than suitable for the purpose.
Note: I write my applications in C# and either .Net 3.5 or .Net 4.
Link: Choosing a ClickOnce update method