cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
njkuenne
Level 3

Major Upgrade has missing files

InstallScript MSI project

Perhaps this is common knowledge, but I was unable to find documentation on this behavior.

I had setup the project to not allow Patching or Minor Upgrades, and only allow Major Upgrades, with complete uninstall then reinstall. It was tested and worked flawlessly upgrading from v1 to v2. Additional work was done and a preliminary v3 was built. However, the upgrade did not work as expected. Only some of the libraries and exes were installed, while others were not.

The problem was that v2 was using files that were versioned later than some of the preliminary v3 files (i.e. v2 dll was 1.0.0.700, and the same v3 dll was 1.0.0.0). The preliminary v3 files were being pulled from a local build for testing, instead of using the formal build machine, and that is why the version was defaulted to 1.0.0.0. Using the formal build machine (v3 dll 1.0.0.750) fixed the Major Upgrade.

Question: If I am doing a complete uninstall before reinstalling, why is InstallShield checking the version of the file from v2 against v3? I would think that since v2 was uninstalled, v3 would act like a fresh install.
Labels (1)
0 Kudos

(1) Reply
TheTraveler
Level 8

This is only a guess, but do your DLLs need to be registered? If they do, then the DLLs in question might have been registered multiple times which means the counter would be greater than 1. If that is the case, the counter won't go down to 0, and it won't be removed from the system. Instead, it would remain on the system then standard file replacement procedures would come into effect.

Again, this is only a guess, but the theory is sound.
0 Kudos