Caching all available updates but mastering their install.

Hello,

I'm not sure how to use the automaticUpdater to achieve what I need. Out of the box, it does too much automatically.

I'm deploying a so called "SmartClient" application internally.Upon login, the client requests from the server the min and max client versions accepted by the server.If the current client version of the client is lower than the min client version expected by the server, the user should be forced to upgrade prior to using the program.If the current client version of the client is greater than the max client version expected by the server, the user cannot continue.

Basically, I would like to download, either automatically or upon user "Check for updates", all wy updates made available on the server but not have them installed if their version is greater than the max client version expected by the server.This way, I can :- Publish in advance updates to be used with the upcoming version of my server and hereby avoid every users downloading updates at once.- Deploy my new server version- Move its max client version to trigger client updates.

Is this possible? If so, how is it best achieved?

Publish in advance updates to be used with the upcoming version of my server and hereby avoid every users downloading updates at once.

Is this an effort to spread out bandwidth costs across multiple days instead of hitting the site at once? Or is this a way of testing with a small subset of users before pushing to a larger subset of users (i.e. a form of beta testing)?

Move its max client version to trigger client updates.

I'm not quite sure what you mean here. Can you clarify?

<quote>Is this an effort to spread out bandwidth costs across multiple days instead of hitting the site at once?</quote>

Exactly

<quote>Or is this a way of testing with a small subset of users before pushing to a larger subset of users (i.e. a form of beta testing)?</quote>

No. We use a separate server instance and special client versions for that.

Move its max client version to trigger client updates.
I'm not quite sure what you mean here. Can you clarify?

Pardon my english. Here is a typical scenario:- We want do deploy a new version of the server.- This particular version also happens to require a new version of the client.- But that new version of the client is incompatible with the current version of the server.- To sum up, the respective new versions for the client and the server need to go live simultaneously.- To "spread out bandwidth cost" and also have the users up and running as fast as possible after the upcoming upgrade, we want them to download the new version upfront, but refrain from installing it *yet*.- Should they manage to install to the new version anyway, the server won't let them log in because their version is greater thatn the Max Client Version allowed by the server.- When deployment time has come, we kick out any user that is still logged, we deploy the new server, and increase Min Client Version and and Max Client version server-side settings to both prevent old client versions from accessing the server and finally let new versions of the client in.

I hope I'm clearer now.

-- Jerome

Hey Jerome,

The good news is that the AutomaticUpdater fits all of these requirements out of the box. However, you'll have to a bit of configuring.

First change the "UpdateType" property to "DownloadOnly". This way your updates will be downloaded, but not installed.

Next, the way we solve the spreading the load of checking for updates is the "DaysBetweenChecks" property. This way your servers aren't bombarded with requests each and every day. If this isn't adequate you can always create your own algorithm and manually check instead of letting the AutomaticUpdater automatically check.

Regarding the "max client" problem, you're going to need some communication between your server and the client. Namely, the server should tell the client to install the updates now (in which case your client call automaticUpdater.Install() ). Also, if the AutomaticUpdater hasn't downloaded the latest update when the server tells your app it needs to update, then you can check, download, and install the update on demand.

This should solve all of your problems.

Tell me if this helps.

Hello Wyatt,

Good to know the AutomaticUpdater is up to the task.

Btw, you mentionned "DownloadOnly". Did you mean "CheckAndDownload"?

I've done what you suggested. My pb now is that, even though updates are not installed on the spot, they will however be installed upon next restart of the application.

How can I fully control when updates are elligible for installation?

Btw, you mentionned "DownloadOnly". Did you mean "CheckAndDownload"?

Sorry, yes. I didn't have the code in front of me.

they will however be installed upon next restart of the application.

Did you set the "UpdateType" property at design time? If you set it to "CheckAndDownload" at design time then the AutomaticUpdater will stop once an update has downloaded.

Btw, you mentionned "DownloadOnly". Did you mean "CheckAndDownload"?

Sorry, yes. I didn't have the code in front of me.

they will however be installed upon next restart of the application.

Did you set the "UpdateType" property at design time? If you set it to "CheckAndDownload" at design time then the AutomaticUpdater will stop once an update has downloaded.

Yes I did. Still updates are automatically installed upon next application restart.

On a side note, how can I properly quotes messages?

Yes I did. Still updates are automatically installed upon next application restart.

This is a bug on our end. Sorry - I don't know how this slipped through our fingers. We'll have this fixed in AutomaticUpdater 2.6.7.

On a side note, how can I properly quotes messages?

We disabled it to reduce spammers. Or more specifically we disabled all tag types - there's no granular control. We're going to change our forum software backend to a custom creation in about 6 months.

Ok. Do you know when 2.6.7 will be out?Meanwhile, can you think of any workaround I could use?

Ok. Do you know when 2.6.7 will be out?

We're trying to get wyBuild 2.6.7 out by tomorrow afternoon.

Meanwhile, can you think of any workaround I could use?

Unfortunately, no.

Thank you.

Some remarks...

The description for "UpdateType" is "Gets or sets how much this AutomaticUpdater control should do without user interaction."Actually it's not quite true as it also controls what ForceCheckForUpdate() does. E.g. Check only or Check and Download.

Suppose I want to control exactly when to check for updates, download update and install them. I would have to set "UpdateType" to "DoNothing" for sure. But then I can't master download time as it's drivent by UpdateType, I can only call ForceCheckForUpdate (will only "check") and InstallNow (will download and install).

I think UpdateType should only drive the background work of the AutomaticUpdater; as the doc says. At the same time the user should have all the needed methods available to Check, Download and Install independently.

My 2c.

wyBuild 2.6.7 is out. Included is the new AutomaticUpdater that respects the "CheckAndDownload" update type.

Thanks again for spotting this bug.

Unfortunately, the setup seems to be corrupted. I consistently get the following error when executing the setup:

---------------------------NSIS Error---------------------------Installer integrity check has failed. Common causes includeincomplete download and damaged media. Contact theinstaller's author to obtain a new copy.

More information at:http://nsis.sf.net/NSIS_Error---------------------------OK ---------------------------

I've rechecked the download - it's not corrupt on our end. Re-download wyBuild using another browser (or clear the cache of your current browser). The "wybuild-setup.exe" is 1,100 KB (as of wyBuild 2.6.7).

Tell me if you're still getting errors.

Also, if you already have wyBuild installed, just update by going to "Help -> Check for Updates" within wyBuild.

Sorry for the false alert Sam. Must be my browser's fault.

BTW, I finally upgraded from wyBuild itself and came accross what looks like a bug.

1 - Check for update => "update available"2 - Restart => update done3 - In the auto updater contextual menu picked "View update information".

The the "update info" window showed up, but- I could not use the vertical scrollbar to go down the list.- I could not close the window by regular means (System close button, "Close" button, ALT+F4). It would blink and that's it.- Therefore I add to kill wyBuild.exe.

The the "update info" window showed up, but- I could not use the vertical scrollbar to go down the list.- I could not close the window by regular means (System close button, "Close" button, ALT+F4). It would blink and that's it.- Therefore I add to kill wyBuild.exe.

This is a known bug that happens when a modal dialog is open (in this case the View Update Info window) and you start a new instance of wyBuild. The new instance of wyBuild focuses the main window of the old instance of wyBuild, and thus leaves it in a state where the user can't do anything.

We're going to fix this soon.

Thanks.