Use the AutomaticUpdater, if you're app is .NET. If you're not making a .NET app, then use wyUpdate to update your app and then you can launch your app after a successful update or after a failed update.
The other choice is to update your app from a service (or dummy service). See: