Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Quitting Minor updates... Major update questions


5 replies to this topic

orlando.ribeiro

orlando.ribeiro
  • Full Members
  • 13 posts

Posted 19 March 2012 - 19:01

Hello,

At my company, i've implemented a large number of Basic MSI setups to deploy the modules of one of our new products.

I'm having a lot of problems related to Minor Updating and the component rules because we use dynamic components everywhere.

I'd like to just give up on the whole minor update annoyances and just ship major updates, every time. I come from InstallScript setups and i am puzzled to find such problems in MSI...

I would also like to change none of the other installation "visual" aspects and keep all other changes in behavior to a minimum, so:

1. Is there a way to deploy a major update without having to go through the first installation UI every time?

2. I configured the setup to "Install then remove unused files". It is not removing the files that belong to deleted components in the last build. Should it? If not, what does this option do exactly?

3. Is there a way to avoid duplication of the application in the add/remove programs list, without having to activate the "Complete uninstall then reinstall"? Uninstallation will remove the app configuration files, which is bad because it will force our users to reconfigure at every update. I do not wish to simply set some components as "uninstall=no" or create complicated algorithms to backup important data before the setup runs and restore it afterwards.

Are there any solutions to my problems?

Thanks.

Orlando
--


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 March 2012 - 19:12

1. Yes, you need to condition the dialogs appropriately.

2. Could be related to ComponentId GUIDs changing for identical components.

3. Did you double check that the uninstall happens at all? Check the result of RemoveExistingProducts action in the log.

orlando.ribeiro

orlando.ribeiro
  • Full Members
  • 13 posts

Posted 19 March 2012 - 19:29

Hi,

1. I was thinking of that. I think i can make it happen smile.gif

I also found this in the log which explains the failure to remove old files. How can i get more details?

MSI (s) (A8:D0) [18:25:31:906]: Doing action: RemoveExistingProducts
Acção 18:25:31: RemoveExistingProducts. A remover aplicações
Início da acção 18:25:31: RemoveExistingProducts.
MSI (s) (A8:D0) [18:25:31:921]: Transforming table Error.

MSI (s) (A8:D0) [18:25:31:921]: Transforming table Error.

MSI (s) (A8:D0) [18:25:31:921]: Transforming table Error.

MSI (s) (A8:D0) [18:25:31:921]: Transforming table Error.

Fim da acção 18:25:31: RemoveExistingProducts. Valor devolvido 1.

orlando.ribeiro

orlando.ribeiro
  • Full Members
  • 13 posts

Posted 21 March 2012 - 11:42

OK, found the problem. I have 4 part versions like this: AA.BB.CC.DD and all that was changing was between builds was the "DD" portion.

As soon as i changed the "CC" portion, the update immediately removed the last version after the upgrade, behaving exactly as expected.

Now i just have to figure out how i'm going to change the versioning method for our entire product line... That should be easy... sad.gif

orlando.ribeiro

orlando.ribeiro
  • Full Members
  • 13 posts

Posted 21 March 2012 - 18:29

Well, after a day spent banging my head on a single setup, i've achieved something similar to what i had in mind:

1. A condition based on a registry search skips the license agreement and select folder dialogs, if the product is installed. This is my version of an update UI... sort of...

2. After realizing that RemoveExistingProducts after the install, will mismatch some of my dynamic components causing some vital files to the installation to get deleted, i put the RemoveExistingProducts action back in the beginning.

3. For the configuration files issue, i created a separate component and placed a condition: REMOVE <> "ALL" OR (REMOVE ="ALL" AND NOT UPGRADINGPRODUCTCODE) so that the uninstall before an upgrade does not delete the files from this component.

Now the install feels like a small update but is a full Major Update that does not delete any configurations from the user.

Hope there aren't many "flaws" in my implementation smile.gif

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 22 March 2012 - 11:35

1. Instead of a registry search I think you could use the property that is secified in the advanced settings of the major upgrade. It is set if the old version has been found.

3. If the component condition evaluates to false, that should remove the component (I'm not absolutely sure about the effect during a full uninstall)