If I use the Forcecheckupdate method, it works, but my program will then have an illegal operation after the update is finished.
Right, because you're not using it correctly -- ForceCheckForUpdate() should not be used (a) at the start of your app and (unless you understand the internals of the AutomaticUpdater) (b) if there is another update step happening at the start of your app (which is very possible). It will throw exceptions when it's being used incorrectly.
And most of all, it shouldn't be used because the AutomaticUpdater automatically checks for updates. That's what it was designed to do. Calling ForceCheckForUpdates() defeats one of the main purposes of the AutomaticUpdater.
A lot of out customers use ForceCheckForUpdate incorrectly -- I don't know how we can solve this confusion problem. Perhaps we should just remove the function altogether.
I added the Automatic Updater control to my C# Winform, set the properties I want (including guid.) I told the control to check for updates in 3 seconds after the form is loaded. I cannot seem to get that event fire off.
It does fire. However it doesn't show any UI (a) when it's checking and (b) when there is no update found. This is by design. Why? Because telling the user there is no update to your app is a useless tidbit for a user. What action can they take based on that information?
If there is an update then they are notified of the progress, because a user can take actions if there is an update available.