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

MSI doesn't update files


9 replies to this topic

Romain

Romain
  • Full Members
  • 11 posts

Posted 27 October 2010 - 17:28

Hello,
I would like to update a product with msi version 1.0.0.0 to a new one v 1.0.0.1 but from several weeks, it doesn't work.
I change product and package guid and the 4th digit of the version
I use IS 2011 to generate the installer

When I use the setup.exe, I see in the log

MSI © (18:44) [18:09:18:283]: Command Line: REINSTALL=ALL REINSTALLMODE=vomus IS_MINOR_UPGRADE=1 TRANSFORMS=1033.MST SETUPEXEDIR=XXXXX SETUPEXENAME=setup.exe CURRENTDIRECTORY=XXXXXXX CLIENTUILEVEL=0 CLIENTPROCESSID=2072

I can see that the update is detected as minor upgrade instead of major update.
Is it normal ?

I have no error during the installation but the new files are not updated and the version has been changed in Add/Remove Prog

I have forced the file version to 65535.0.0.0 in the file table.

I have filled the Upgrade table with VersionMax = 1.0.0.1 (for the latest version) attribute 256

When I use the properties MSIENFORCEUPGRADECOMPONENTRULES and MSIUNINSTALLSUPERSEDEDCOMPONENTS it works if there is no important changement in my msi

How can I update my program in all case and be sure the files are overwriten

Thank you for you help

Romain


VBScab

VBScab
  • Full Members
  • 436 posts

Posted 27 October 2010 - 17:43

Check this MSDN article about ProductVersion
- Don't know why 'x' happened? Want to know why 'y' happened? ProcMon will tell you.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.

Romain

Romain
  • Full Members
  • 11 posts

Posted 28 October 2010 - 09:09

Thank you for your response

I already know the msi use only 3 number for a version

In one setup, when I use MSIENFORCEUPGRADECOMPONENTRULES it works fine
But on another I have error 2771

The setup.exe already detect a version change
Is it possible to force detection of the 4th number of the version inside msi by forcing a msi property ?

Thank you for your help

Romain



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 October 2010 - 10:15

QUOTE
In one setup, when I use MSIENFORCEUPGRADECOMPONENTRULES it works fine
But on another I have error 2771

If you're performing a minor update you must comply with a couple of upgrade rules, for instance you can't remove a component from a feature etc. If you comply with these rules, the update will work. If you don't you get error 2771.

QUOTE
Is it possible to force detection of the 4th number of the version inside msi by forcing a msi property ?
Not that I'm aware of. And you shouldn't try to tweak and trick Windows Installer in order to cover a broken version numbering scheme - you should fix your numbers instead. Yes, I know this can be annoying that WIndows Installer ignored the forth field of the ProductVersion, but we have to live with it.

Romain

Romain
  • Full Members
  • 11 posts

Posted 28 October 2010 - 13:32

Thank you Stefan.

I finally change my MSI version to have 3 digits. I don't want to have others problems.

Bye

Romain

Romain

Romain
  • Full Members
  • 11 posts

Posted 16 November 2010 - 14:03

Bad news

I have the same problem with 3 numbers for the version.

The setup.exe detect that my product need to be upgraded and finished with no error but the files are not updated.

The product code is not changed. I changed only package code and version and feature tree.

I have activated the log with debugview and I see the error.

SELMGR: ComponentId '{5A90D7F8-8217-4DA0-7BAA-658FA480DC3A}' is registered to feature 'XXX', but is not present in the Component table. Removal of components from a feature is not supported!

The schema is 405
I don't want to make a major upgrade but a minor upgrade and clean the unused components.

How can I do that ?

Thank you

Romain

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 November 2010 - 14:34

In a Minor Update you are not allowed to remove components from the project (nor move them between features and many other restrictions). A Major Upgrade may be the cleanest solution. Why don't you want to create a Major Upgrade?

In a Minor Update you can remove a component from the target system. You must keep the component in your setup, but you can set its condition to 0 (and set the "transitive" or "re-evaluate condition" flag to true). Now this component won't be installed, and if it was installed it will be removed. If the component includes large files you can replace them with 1 byte dummies so reduce the size of your setup media.

Romain

Romain
  • Full Members
  • 11 posts

Posted 16 November 2010 - 15:13

thank you for your response

It is not easy for me to change the product code because they are all referenced in software updater. If I change product code I need to change the way of detection of the installed product by using the upgrade code.

I already know the technique by adding a empty component with 0 in the condition but I don't know what are the removed component because they are generated with Installshield 2011 when a add a folder.

I have read another technique here
http://blogs.msdn.co.../19/482761.aspx

but I don't really understand it sad.gif

Romain

Romain
  • Full Members
  • 11 posts

Posted 17 November 2010 - 15:32

ok, I could do that by detecting the components that are removed from the previous version but I need to store all the component guid that have been used by any old package and automate a process to create them inside the msi.
I must be sure to update all previous package to new one.
It is easy when we have few package and components. In my case I have about 1000 components and one package per day.

I am trying to change my update process by changing the product code

But now when I start the new package over a previous package, the installer doesn't detected my previously installed package and I have 2 products installed with the same upgrade code.

Did I forget anything?

Romain

Romain

Romain
  • Full Members
  • 11 posts

Posted 17 November 2010 - 15:59

sorry, it is working fine

thank you for your help

Romain