Instead of reinventing the wheel try using ClickOnce
If you're going to need a certificate if your app is to be signed and publicly distributed. You can work with a test certificate for development
Build your app, right-click on the main project and pick Publish (also on the Build menu), follow the wizard
The target location you pick will end up having an app.application
file and some folders, one for each version you publish. You can put these files on a file server somewhere and share the link to the .application file with your users. Every time you publish their app will get updated the next time they use it.
If reinventing the wheel is your thing you can build your app, make another project checks a link for a file that contains a version, compares with the local version and downloads if newer, then launches the downloaded exe.... just like clickonce