cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
varunAdb
Level 4

Reinstall fails to install all components.

Hi,

We are basically creating installer for plugins for different applications for which we install only if compatible version of application is present. I want to implement a behavior where user if later installs an application can run a repair where we are using transitive components and hence corresponding components will install. This is working fine for some components but not for all. For two components present in parent feature which will always install(hence saving myself from ADDLOCAL and REINSTALL property population) i get this in log data.

Acrobat9Files; Installed: Local; Request: Null; Action: Null

AcrobatConfig; Installed: Local; Request: Local; Action: Local



The only difference these components have is there install location. While Acrobat9Files install in folder specific to Acrobat 9, AcrobatConfig installs in installdir. Even conditions are same.

I can't find any such difference. However, if i change the location of Acrobat9Files to same location where AcrobatConfig is getting installed i.e. installDir, then both are getting installed. I suppose i am missing out something when location of Acrobat9Files is set originally. What i am doing is using systemsearch to obtain the location of Acrobat 9 and then appending some path to it. Acrobat9Files goes in resultant path

Also i would like to add that I use set directory CA to set the location of Acrobat9Files component and this is schedule after cost finalize and before install validate events.

where am i going wrong?
Labels (1)
0 Kudos
(2) Replies
Not applicable

I faced same kind of problem, during modify I tried to update an ini file. But I found it worked only when I removed the .INI file.
It means the reinstall works only when it finds those files missing? May be an upgrade can help.
0 Kudos
Kelter
Level 10

perhaps a combination of "always overwrite" and "transitive" will fix the issue?

keep in mind that when deciding whether to reinstall a component, msi checks the keyfile. if this is not foound, or found to be an earlier version than the one in the package, then it'll be (re)installed. otherwise, nothing happens. the assumption is that either the thing is already installed, or it's been modified (therefore having user data which the installation doesn't want to wipe out).

given the box that you're in, perhaps authoring that file into the removefiles table (concurrent with the previously mentioned ideas) will solve the issue.

-"transitive" (reevaluate condition) will assure that the component is checked on reinstall
-"always overwrite" will supersede the file versioning rules
now installvalidate will say that the component needs to be installed.
-adding the record in the remove files table assures that the file gets deleted during the "removefiles" action so that the "installfiles" action will not decide against overwriting a "newer or same version" file.
0 Kudos