tsellman
Posts: 24
Joined: Fri Sep 14, 2012 2:37 pm

Is Side-by-Side type appropriate

Have to build an installer that essentially has two major components initially installed.
Component A is responsible for starting Component B and over time, potentially cause
the update of Component B (out-of-band from AI's knowledge).
Note: the files representing a given version of Component B are in their own
directory, such that one could maintain previous versions of 'B'.

When upgrading, B's older versions are to be left untouched (no 'removal-of-older version on upgrade')
A's version B's version Time
1 1 |
1 2 |
1 3 |
\/
Eventually, Component A will incur improvements, so an upgrade would
deliver a new Component A (and perhaps an even newer Component B).
2 4
3 4
4 5

My assumption is that I'll need to specify a side-by-side with install package and
that the ProductID will correspondingly change too.
Another thought is the need for a dialog which could asking the user to confirm
if they wish to let component A or B to be installed as they may wish to remain at
an older level of the component (relative to one another).

Does this seem appropriate or should I be thinking otherwise?
Daniel
Posts: 8239
Joined: Mon Apr 02, 2012 1:11 pm
Contact: Website

Re: Is Side-by-Side type appropriate

Hello,

In order to implement this approach you can add our "UpgradeDlg" dialog to your project.

Let us know if this helps, otherwise please give us more details about your scenario.

All the best,
Daniel
Daniel Radu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
tsellman
Posts: 24
Joined: Fri Sep 14, 2012 2:37 pm

Re: Is Side-by-Side type appropriate

Thanks for the reply, but I don't think this addresses my specific need.

Let me outline the scenario a bit more....

An install of release 1 for product A put's two files ( first.exe, second.exe ) on the system.

The file second.exe is placed into a sub-directory with respect to first.exe.
The job of first.exe is to start second.exe.
During the operational life of the software, and outside the scope of Advanced Installer,
the 'bootstrapper' may be re-directed to start a different file 'third.exe' (which also will have
been placed into another unique sub-directory with respect to 'first.exe'.

On an uninstall of product A, all the files and folders above will be deleted (as desired) since I changed the
Operations 'Remove folder' option to do so on component uninstall even if the folder
is not empty.

Now the problem:

Eventually, product A is changed such that there is a new first.exe. So an upgrade (release 2)
is generated with a new Product Code. Under the Application Upgrades tab of AI,
the default treatment of Application Versions is to 'Automatically upgrade older product versions'
with an Order to either Uninstall old first or last. In either case I simply want first.exe
to be exchanged but the 'second.exe' and 'third.exe' to remain on the system.

I was thinking side-by-side concept may do what I want, but I don't think it would be
appropriate since the name of 'first.exe' is a constant and an uninstall of release 2 would
remove 'first.exe', and then an uninstall of release 1 would try to uninstall and the file
named 'first.exe' is already gone. I think the uninstall would complain.

Bottom line is how to have an upgrade not remove some files, yet over-write (or replace)
others.... and to allow for the removal of all files on a 'full uninstall'.

Thanks in advance for any suggestions
Eusebiu
Posts: 4931
Joined: Wed Nov 14, 2012 2:04 pm

Re: Is Side-by-Side type appropriate

Hi,

You might have misunderstood how a "Side-by-side" installation behaves. This option allow different versions of the same application to be installed on the same computer.

For example, you will install Release 1 of the Product A with first.exe, second.exe and third.exe files in Folder 1, then upgrade Product A to Release 2 and install it in Folder 2 without uninstalling the Release 1 of the Product A previously installed. In this case you will have two versions of the same applications installed on the computer ( 2x first.exe, 2x second.exe and 2x third.exe).

If you uninstall one version of the application, the other version and its files are not affected at all.

However, in order to achieve what you want you don't need a "Side-by-side" installation, also I don't think you need the "Remove folder" option in the "Operations" tab. You can simply follow the steps described in the Avoid file removal during upgrade thread.

Let us know if this helped, otherwise give us more details about your scenario.

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
tsellman
Posts: 24
Joined: Fri Sep 14, 2012 2:37 pm

Re: Is Side-by-Side type appropriate

Thanks for the direction. I'm really close, but there still issues that I can't figure out.

I've attached the two AI configuration files used to generate two release packages:
InstallCfg_Version_0.0.1.16.aip
InstallCfg_Version_0.0.2.16.aip

Scenario:
Initial release installed with ProductVersion set to: 0.0.1.16
An executable whose version is 0.0.1.16 is put into APPDIR.
Also contained within this release is a secondary executable with version 0.0.0.6. As defined by Files & Folders,
the secondary executable is placed into a subdirectory (with a name the same of the secondary
executable version) of APPDIR

Upgrade to release 0.0.2.16. (e.g. ProductVersion set to: 0.0.2.16)
The main executable located in APPDIR is to be replaced.
Also contained within this release is another generation of the secondary executable with version 0.0.0.10.
Similar to above, the Files & Folders tab defines that this
secondary executable is placed into a subdirectory (now called 0.0.0.10) of APPDIR

Ultimately, I want to end up with the following file/directory structure after the upgrade::
- the 0.0.0.6 subdirectory (and any contents) will be left
remaining without change.
- the 0.0.0.10 subdirectory there as well.
- the main executable in APPDIR will have been replaced

e.g.
APPDIR/
pimrary.exe (version 0.0.2.16)
0.0.0.6/
library.dll
secondary.exe
0.0.0.10/
library.dll
secondary.exe


What ultimately happens varies depending on the contents of the subdirectory when the upgrade
is invoked.

Scenario 1 -
If the primary exe is launched (checked on the dialog when asked at the end of install), it creates
other files/subdirectories down in the 0.0.0.6 subdirectory. When the upgrade is processed, the 0.0.0.6 subdirectory is
left remaining, although the two components from the initial install are now gone.
I have also attached the log files from the initial install and one from the upgrade install.



Scenario 2 -
If the primary exe is _NOT_ launched so that the contents of the 0.0.0.6 subdirectory has no files or subdir's that
were not initially installed, then when the upgrade is processed, the 0.0.0.6 subdir is removed completely.


I don't understand why based on the documentation, etc. It doesn't seem like the setting of OLDPRODUCTS in the Operations
tab for the files in the AW_INTERACT_VERSION subdirectory, coupled with the 'Do not overwrite' selection has the
correct effect of preventing the files from being removed.

This is on an XP system.

Could you have a look at the AI config files and see where I may have gone wrong?
Thank you.
Attachments
bestYet_install_1.16.log
initial install log
(314.79 KiB) Downloaded 323 times
InstallCfg_Version_0.0.2.16.aip
upgrade install log
(37.3 KiB) Downloaded 372 times
InstallCfg_Version_0.0.1.16.aip
(37.29 KiB) Downloaded 403 times
Eusebiu
Posts: 4931
Joined: Wed Nov 14, 2012 2:04 pm

Re: Is Side-by-Side type appropriate

Hi,

Please keep in mind that this is the normal behavior, the folder "0.0.0.6" is removed because its name is changed to "0.0.0.10" in the new version of the product and this new version does not back it up before the uninstallation of the old version.

In order to achieve what you want you can go in the Organization page, select the component that contains the files from the "AW_INTERACT_VERSION" subdirectory and check the "Permanent" option.

Let us know if this helped.

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
tsellman
Posts: 24
Joined: Fri Sep 14, 2012 2:37 pm

Re: Is Side-by-Side type appropriate

Thanks for sticking with me... your suggestion was the correction that I needed.
Eusebiu
Posts: 4931
Joined: Wed Nov 14, 2012 2:04 pm

Re: Is Side-by-Side type appropriate

You're welcome. I'm glad you got this working.

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Building Installers”