PDA

View Full Version : How to prepare series of Web Update



markwa
03-27-2007, 02:38 PM
Hello,

As a SetupBuilder newbie but enthusiastic fan(!), I've successfully prepared a base setup for a 2.0.2 version of my app ("Composer"), and also a Web Update for version 2.0.3. My latest app version is 2.0.5. Users of version 2.0.2, 2.0.3, and 2.0.4 should all be albe to update in one step 2.0.5. I see evidence in this forum that this is possible, but I haven't been able to figure out how to do this.

The compiled 2.0.2-to-2.0.3 Web Update has three files:
(1) ComposerManifest.ini
(2) ComposerUpdate.00001
(3) ComposerUpdate.exe

NOTE: I use the patch feature, because most of my application is in a single EXE.

If I create a second 2.0.3-to-2.0.4 Web Update, it also has three files like the above. I don't understand how these are essentially merged together in the 'update' directory at my server to support both 2.0.3-to-2.0.4 as well as 2.0.2-(to-2.0.3?)-to-2.0.4.

This raises a lot of questions:
* For each new version (eg, 205), do I need to prepare a new Web Update for each prior version: 202 to 205, 203 to 205, and 204 to 205?
* When it's time to do this for version 2.0.6, do I make an entire new Web Update sb6 project, or do I modify my most recent Web Update sb6 project?
* Do I need to have a separate Web Udpate sb6 project for each pairwise version path, such as one sb6 project for 202 to 205 and another for 203 to 206? (I hope and suspect not. If not, then what does the script look like for the different version update paths?)
* Is there one manifest INI file for all of these pairwise version updates, or does one manifest INI file have distinct sections and/or entries for each pairwise version update?
* Does the level of SetupBuilder support for a series of Web Update versions depend on whether I'm using SetupBuilder's patch feature?

The overall question is this: Is there some documentation or forum post I'm overlooking that describes how to prepare a series of Web Updates?

Thanks!

-- Mark

michael
03-28-2007, 12:28 AM
As a SetupBuilder newbie but enthusiastic fan(!), I've successfully prepared a base setup for a 2.0.2 version of my app ("Composer"), and also a Web Update for version 2.0.3. My latest app version is 2.0.5. Users of version 2.0.2, 2.0.3, and 2.0.4 should all be albe to update in one step 2.0.5. I see evidence in this forum that this is possible, but I haven't been able to figure out how to do this.

The compiled 2.0.2-to-2.0.3 Web Update has three files:
(1) ComposerManifest.ini
(2) ComposerUpdate.00001
(3) ComposerUpdate.exe

If I create a second 2.0.3-to-2.0.4 Web Update, it also has three files like the above. I don't understand how these are essentially merged together in the 'update' directory at my server to support both 2.0.3-to-2.0.4 as well as 2.0.2-(to-2.0.3?)-to-2.0.4.

This raises a lot of questions:
* For each new version (eg, 205), do I need to prepare a new Web Update for each prior version: 202 to 205, 203 to 205, and 204 to 205?


You only need to prepare one web update project. A web update always brings the software to the latest version. It will web update 202/203/204 directly to 205.

Your 2.0.2-to-2.0.3 will do the following:

* 2.0.2 app checks for an update
* New update (2.0.3) detected and ComposerUpdate.exe downloaded
* ComposerUpdate.00001 file update applied



* When it's time to do this for version 2.0.6, do I make an entire new Web Update sb6 project, or do I modify my most recent Web Update sb6 project?


This is completely up to you. We always use the same project file. Other developers make use of a template project. I know that LinderSoft use the same project file for all web updates.



* Do I need to have a separate Web Udpate sb6 project for each pairwise version path, such as one sb6 project for 202 to 205 and another for 203 to 206?


No. One web update can handle all previous versions.



* Do I need to have a separate Web Udpate sb6 project for each pairwise version path, such as one sb6 project for 202 to 205 and another for 203 to 206? (I hope and suspect not. If not, then what does the script look like for the different version update paths?)
* Is there one manifest INI file for all of these pairwise version updates, or does one manifest INI file have distinct sections and/or entries for each pairwise version update?

The overall question is this: Is there some documentation or forum post I'm overlooking that describes how to prepare a series of Web Updates?


I like the following two threads:

http://www.lindersoft.com/forums/showthread.php?t=2080

http://www.lindersoft.com/forums/showthread.php?t=2102

markwa
03-28-2007, 09:26 AM
Hello Michael,

(I tried to reply in another thread you referred to below, but for some reason I wasn't allowed to reply there even though I can reply here.)

I had seen both of the threads you referred to, but they stopped short of what I was looking for. Specifically:

The first thread http://www.lindersoft.com/forums/showthread.php?t=2080 describes well the procedure for preparing the first Web Update after the base release, but it doesn't describe the procedure for subsequent Web Updates (version 2.0.2, 2.0.3, 2.0.4, etc.)

The second thread http://www.lindersoft.com/forums/showthread.php?t=2102
sort of (but not fully) describes the procedure for subsequent Web Updates, but it depends on CRCing and complete replacement of files rather than patching of files. In fact, the first sentence in that thread explicity says, "Ignore patching for this question". But I cannot ignore patching, because the bulk of my installation is in a single big 10Mb EXE.

In the past I've used EasyPatch2001. Every time I do a new maintenance release, I create all of the pairwise patches from previous maintenance releases to the current release. I wrote a little tool that programmatically calls EasyPatch2001 to prepare all of the pairwise patches. So, for any new maintenance release, it only takes me a few minutes to prepare all of the patches. However, this is a clumbsy solution for the end-user compared to Web Update, which is great for the end-user, because the end-user doesn't have to manually find the first patch, as he currently must do at my awkward www.notation.com/ComposerUpdate.htm page.

So, I'm still back at the original question. I know how to prepare the first Web Update, which is what the http://www.lindersoft.com/forums/showthread.php?t=2080 thread so well describes. And, I understand that many folk are happy with the CRC method for complete replacement of files in a series of Web Updates, as is somewhat, but not fully, described in the second http://www.lindersoft.com/forums/showthread.php?t=2102 thread. But the remaining question is:

How do I prepare a series of Web Updates (for 2.0.2, 2.0.3, 2.0.4, etc.) that use patches?

By the way, a primary reason I want to use patches is just not smaller file size but also to avoid "giving away" the entire app EXE. The only difference between my trial and full version is the app EXE. If the Web Update includes the entire app EXE, I'm concerned that it will be too easy for hackers to find a way to exploit that fact.

Cheers
-- Mark

michael
03-28-2007, 10:05 AM
Hello Mark,

Sorry, I missed the request for patching :(

I think if you use the patching feature, it's all automatic. It only downloads and applies the required binary patch (based on the installed target file).

I am sure Freidrich can help...

linder
03-28-2007, 10:51 AM
Mark,

I think Web Update and binary patching are a perfect combination for Notation Composer.

What we need is a simple web update project. Whenever you have a new
composer.exe available, you add that new executable to the (same) web
update script and SetupBuilder compiles a new web update package. You
then upload this to your web site. That's it.

Even if you have 500 different composer.exe versions, web update is smart
enough to detect the right patch object on your server and then applies
the patch. If no patch matches (e.g. because you sent an unofficial test
version to a customer), it installs the latest full composer.exe. In
other words, there will not be a "version mismatch error!

Friedrich

markwa
03-28-2007, 03:33 PM
Hello Friedrich or Anyone,


Whenever you have a new composer.exe available, you add that new executable to the (same) web update script... Do I manually update the script, or is there a wizard or command that helps me with that?

Cheers
-- Mark

linder
03-29-2007, 08:12 AM
Mark,

There is an "Auto Update Scan Wizard" to automate this process. We are using this to build web updates for all SetupBuilder editions.

-but-

it cannot be used to generate multiple-version patch files yet. This will be available in one of the next builds.

Friedrich