Page 1 of 1
Build action
Posted: Mon Jan 23, 2006 10:59 pm
by garylyb
I have 3 components that can be installed in any combination.
The clean installation is fine.
When I restart the installation, and modify it, the old components are deleted, and the new ones installed correctly.
The registry key I set reflects the correct combination, it's written to the registry correctly.
Up to now, it all works as expected.
Then I do a build, and I have unchecked the option set that says change revision code automatically upon rebuild.
Now, the installer goes into the modify screen, I can select a different set of options, my variable is set correctly, I execute the write registry function, but the registry never changes.
Also, the old components are not deleted from the system, only new ones added.
The revision code did not change, what is going on?
Posted: Tue Jan 24, 2006 5:51 am
by Gizm0
It's normal behavior.
As far as the revision code doesn't change, if a previous installed product is on the system with the same revision code, then nothing changes, because IA understands that the same product is installed.
If you increase the revision code, then IA will understand that a previous version of the product is installed on the target machine and act correctly.
Posted: Tue Jan 24, 2006 6:55 am
by garylyb
Hi -
If IA only looks at the revision code, then something is wrong here.
There are 3 cases when I run the installer again -
1 - Same build same revision code -
NEEDSUPGRADE is not set
The old components are deleted.
The registry is written correctly.
2 - New build, same revision code
NEEDSUPGRADE is not set
The old components are NOT deleted.
The registry is written NOT correctly.
3 - new build, new revision code
NEEDSUPGRADE IS set
IA wants to delete the existing installation, not modify it.
Case 1 and 3, I understand, but If IA only looks at the revision code, then case 2 does not make sense.
Thanks
Gary
Posted: Tue Jan 24, 2006 8:35 am
by CandiceJones
Hi Gary!
Case #2 is simply the way Windows Installer works. The revision code of a setup package lets Windows Installer uniquely identify it. Each package must have a unique revision code, and this is why the revision code is set to auto-change by default.
Now if you are disabling the auto-change feature, it is really your responsibility to manually change the revision code every time you change your setup - newer files, or newer logic. If you don't change the revision code, you are essentially breaking and confusing MSI. Which is why it leads to the results you have observed.
Posted: Tue Jan 24, 2006 9:49 am
by garylyb
Ok, it sounds like if I use MSI, I really need 2 different installs with 2 different product codes. One for programs, and the other for data, as I don't want to delete all those data files when new programs get installed.
This just adds more complexity than I wanted.
Thanks for all the quick responses.
Gary
Posted: Tue Jan 24, 2006 11:34 am
by CandiceJones
Hi Gary!
If the data files must not be deleted, you can mark them as permanent in Install Files.
Posted: Tue Jan 24, 2006 12:26 pm
by garylyb
Hi
That might work.
Another question, on a web deploy, when do the files get downloaded from the web?
Does it happen after apply install, and only if an Install Files command was executed for one of the files?
Thanks
Gary
Posted: Tue Jan 24, 2006 12:39 pm
by MichaelNesmith
Gary,
The files get downloaded when an installation command that needs access to source media executes. This does not wait for Apply Install to be called. Install Files would be a command that would trigger a media download. Write Registry would not - just two examples.
Posted: Tue Jan 24, 2006 1:53 pm
by garylyb
Well, this is still driving me crazy.
I have 3 components A,B,C - all of the install files are marked permanent
On a clean install, I install component A - it works fine.
Now I restart the installer, it goe into modify, I select A and B, I trace through the code, and the install files for A and B are both called.
Only the files for component A are actually installed - component B is not added.
I have unselected Component A, and selected B - still the A files are installed again, B is ignored.
I thought that permanent just means the the files are not uninstalled - and they are not, but it seems to mean that the original installation is permanent and can't be modified - at least that's how it's working.
Gary