We have an msi and its project file ism file.

In that entries are there in IsSelfReg table.

When we are trying to upgrade with previous version of same msi, we are getting below error because of the above entry.
But it is not coming with fresh install.

NOXIfq.png

Can you suggest anyting other than moving these entries to Registries.
1 Comment   [ + ] Show Comment

Comments

  • Found the root cause of the issue...

    it is installing without error if I uninstall the previous version and install ours, instead of direct upgrade through upgrade tables.

    The problem with upgrade table is, some dependent dll files of the dll file mentioned in IsSelfREg table are not getting installed through direct upgrade.

    They are not getting installed because through Upgrade table, the dlls should be same or higher version to the previous version dll files then only it is installing.In the current situation the dll files are lower version (higher version dll are having some issues so we are replacing with older version as they are working fine for functionality).

    Can we keep any setting for this situation to install lower version dll files through upgrade table also??
Please log in to comment

Community Chosen Answer

3

The ISSelfReg table (eventually) uses the same API as RegSvr32 and MSIExec (with the "/y" argument). Using any of these options is lazy packaging. Use the correct tables for registering COM objects.

Answered 07/01/2016 by: VBScab
Red Belt

Please log in to comment

Answers

1
i have had a similar issue in the past, but this was due to the new msi that was installing an updated DLL that had the exact same version and file size as the one its replacing and it caused this error, the only way to get round that issue for us was to remove that file as part of a custom action of the install prior to installing the new files.
Answered 07/01/2016 by: sparky86
Fourth Degree Brown Belt

  • Thanks Sparky, but the application is installing if it is same version but failing vecause of older version files.But there are around 25 dll files and even more I think.Is there any setting in upgrade table itself, instead of our own custom action.

    And if we need to write a custom action in our new msi, to delete the files in older version.Is there any condition for the cutom action to run only when the upgrade happens.Instead of everytime even the older version doesn't exist.
Please log in to comment
1
What kind of (Windows Installer) upgrade are we talking about?

I recommended you do a major upgrade - have the installer remove the previous version before installing the new version. Yyou will have the least problems using this method and it should eliminate your issue above. You might need to fiddle around in the INSTALLEXEC sequence to make sure its in the right place.

https://msdn.microsoft.com/en-us/library/aa371197.aspx

If you don't know what I'm talking about then be careful as you might make your estate worse with a bad MSI!

A question
  • Is this a vendor msi or inhouse msi?


Answered 07/01/2016 by: rileyz
Red Belt

  • It is inhouse built long back.Now we are just changing the files..

    I have done majore upgrade only,but don't know why it is failing like this.Even the files are removed completely during upgrade of the previous version.
  • But it is working fine if I uninstall the previous version and install ours, instead of direct upgrade through upgrade tables..
    • Humm, we need to see the logs - can you upload them to pastebin or something so we can read them. Log the upgrade with /L*vx.
Please log in to comment
Answer this question or Comment on this question for clarity