cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
cglicenseadmin
Level 2

Major Upgrade corrupting SharedDll counts.

Hi,

I have currently deployed my app to users with almost all components marked as shared, most of them have created a ref count in registry and registered all components. Now when i plan a major upgrade, the current version wont uninstall properly and the new version would sometime fail. Also new version then leaves files behind during uninstallation.

Logs show follwing lines - 

Disallowing uninstallation of component: {E0A9BE8F-CE7B-3851-A6C7-9709ECEB3DB3} since another client exists.

Our new version and old version both work fine seperately. Also we now have marked most of the components as unshared still it is not able to upgrade properly. We also have created the upgrade table for major upgrade which triggers upgrade properly as well.

Q1. How to correct the shareddll ref count and delete components properly during upgrade. I found following link but this meddles with ref count of other dlls as well.

https://www.flexerasoftware.com/blog/software-installation/2010/11/cleaning-up-your-shared-dlls-registry-references-for-msis/

Q2. Even though we are changing file version, why are the files not able to update during upgrade.

Q3. With every release we are changing file version, should the component IDs also be changed during upgrade?

0 Kudos
(1) Reply
Jenifer
Flexera Alumni

Hi @cglicenseadmin ,

  • It is always not a safe option to make component shared while dealing with upgrades.That will have impact on un-installation especially
  • I hear from you that you had removed almost shared property from all the required components,so it shouldn't be an issue

Answering to your questions:

  • Q1:There is no such given method from InstallShield to clean up reference counts,since it shared property if for some purpose.Eg:you might want to keep file in Shared directory such as [CommonFiles],[System] etc.The batch execution method given in link is a work-around type
  • Q2:In Major upgrade,it should not be an issue.Since it uninstalls and re installs the product.Check the sequence of RemoveExistingProducts Action
  • Q3:Not required,in Major upgrade product code itself gets changed.That clearly indicates it is separate product.More details can be found here:https://docs.microsoft.com/en-us/windows/win32/msi/major-upgrades

 

Thanks,

Jenifer

 

 

0 Kudos