cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Streamlet
Level 5

Upgrade with new components

I an using Basic MSI Project.

In old version (1.0.1.0), I set the condition of a component to 0 so that the files in that components will not be installed.

In new version (1.0.2.0), I removed the condition of that component so that the files will be installed now.

However, when I upgrade from the old version to the new one, files in that component is not installed. It looks strange. Why?

I have another try. I didn't use condition, just added a component with files in new version. The new files cannot be installed through an upgrade, too.

Is there any explanation about this?

Thanks in advance.
Labels (1)
0 Kudos
(4) Replies
herbie68
Level 4

When Using MSI the conditions do not work the next time you start the setup.
Therefore you can not use conditions to get this done.

Rebuild mij Basic MSI Installshield into a Installscript Installshield where I have more cotrol over this issue
0 Kudos
HenryL
Level 5

Since the component hasn't been installed along with 1.0.1.0, I think it sort of make sense that it doesn't install while installing 1.0.2.0 as it has no target to upgrade. However it's weird that it still cannot be installed with adding a new component. We often add new components to our new release and the files can be installed correctly during the upgrade. Of course, it's different situation that the files don't exist in previous install. Not sure if the duplicate keypatch would cause something like this?

You can try to author the component as transitive component by setting the "Reevaluate Condition" to Yes. Hope it helps.
0 Kudos
Streamlet
Level 5

Or can I disable Upgrade feature? - That's to say, when user runs new version of package, call uninstaller of the old version automatically, or simply refuse to continue before he/she unsinstalling the old version.

Is this OK to implement?
0 Kudos
KathyMorey
Level 10

In a minor upgrade, MigrateFeatureState action will ensure that previously installed components are upgraded, which is why the component with the condition change didn't get installed. You could fix that with a custom action that sets the ADDLOCAL property with the name of the changed component - see the help for more information.

When you add a new component, you can ensure it gets installed in a minor upgrade using the same method, or by marking it as required by another component that was installed, I believe.

Finally, a major upgrade (which automatically uninstalls the old version and then installs the new version) should also allow for the new component and the changed component to be installed.
0 Kudos