PDA

View Full Version : Webupdate methodology



MOwens
02-15-2010, 06:03 AM
Our software relies heavily on frequent updates for database and file based changes. The number of times that user receives changes can be as many 3-4 times a day in the busy season to 3 times a week in the off season. We created our own update process for our software where the program calls a webservice, queries and sends the users program version (database & files), the webservice then constructs the proper database changes and downloads to the user and installs. These are access database tables as we are required by some of our coporate clients that we cannot isntall services on user machines (SQL Server and the like).

We can still do this with UAC aware systems, but we don't want it to prompt for 'admin' rights. We are under the idea, that code-signing our files and installation would prompt for admin perms on initial install, but after that we would be able to update without requiring admin if we were to use SetupBuilder as our webupdater (valid installer). Is that correct?

If so, would we be able to run a SetupBuilder webupdate to call one of our DLL's to call our webservice and perform the necessary updates?

Thanks,
Mike

linder
02-15-2010, 06:18 AM
Mike,

You can use the wucheck.exe client to "check for updates" non-elevated and there is no elevation prompt on UAC-aware systems.

If your web update installer (the thing that handles the real update process) requests administrator execution level privileges, then there will always be an elevation prompt on UAC-aware systems. There will not be any elevation prompt if your web update installer is an "asInvoker" installer -- but in this case, you do not have access to protected areas (e.g. Program Files folder tree, HKEY_LOCAL_MACHINE registry key, etc.).

BTW, you can call into your own DLL from a SetupBuilder application.

Does this help?

Friedrich

MOwens
02-15-2010, 09:41 AM
We are moving the databases to the ProgramData\<company>\<software> directory and giving users write perms to the files. I guess the biggest hurdle is going to be the core files in 'Program Files'.

What would be the minimum requirement for a web update install? Just changing the version # and deploying the <update>.ini or does there need to be a file update/change to create a web install?

Also, is it necessary to create a template to keep compiler and run-time variables when creating webupdate projects that's based on an full or primary install project?

linder
02-16-2010, 12:10 AM
You always have two different projects: an "initial" .sb7 project and a "web update" .sb7 project. The initial install enables the web update capability. When you have a new version of your software available, you compile a web update project with a higher version number. You upload the new <update>.ini, the web update installer .exe and generated "cluster files".

Similar to this:
http://www.lindersoft.com/forums/showthread.php?t=9459

Does this help?

Friedrich