/build/static/layout/Breadcrumb_cap_w.png

How Can I Install Features Not Previously Marked for Installation via Command Line SILENTLY?

Hi all,

I would like to be able to initiate a Maintenance Install (Change) silently where features that are newly detected as needed are installed. I've tried

Code:

msiexec /i /qb! "<path to>\My.msi REINSTALL=ALL REINSTALLMODE=omus

Let me further explain what I would hope I can do from the command line. We have a feature or two that install conditionally based on the presence of another third party app. Now, if our app is installed before they install the third party app, our related pieces, Feature(s) will not get installed. So, the user then has to undertake a maintenance install (Modify/"Change"). This is all working great if run through the UI.

I added an AddLocal entry on the Mnt Type dialog's Next button, which then shows the Feature(s) in question are set to be installed (conditions met) when the feature selection dialog is displayed.

The only problem is that many of our customers rely on our update utility that will upgrade our app, but it does so silently.

I was hoping there was a way to run the silent reinstall or maintenance install, the missing Feature(s) would be detected as needed and would install without having to run through the UI. Without the UI, however, I'm not hitting my AddLocal directions from the Next button.

Does anyone know how I can accomplish installing the features not previously installed due to the lack of the third party app silently? Can I create some type of action(s) that if the Feature conditions are met, pass it through AddLocal. If I do it this way I think I might have to resolve all of the Features set to install and list them, comma delimited or something like that, in AddLocal. ??

So, in short, our app installed before third party app, the detection of which is used as Feature condition.
User installs third party app and now needs to get our associated pieces on the machine.

How can I add the previously skipped Feature silently from the command line?

We do NOT want to use the presence or lack of the third party app as a Launch Condition to prevent the install entirely.



0 Comments   [ + ] Show comments

Answers (1)

Posted by: SnowLyric 10 years ago
Second Degree Brown Belt
0

 Have you already considered using conditions and INSTALLLEVEL property for feature installations?


Comments:
  • That is how it is set up now. Each feature is conditioned and INSTALLLEVEL set to 1.

    The issue presents itself after our app is installed. During initial install, the Feature condition evaluated to false so INSTALLLEVEL was not set to a value to mark for installation.

    If I run through the UI Maintenance installation after the third party app is installed, when the Feature selection appears, I can tell all is working properly with the addition of the AddLocal event, because the Feature displays as marked for installation.

    However, silently, I won't run into this AddLocal event, so I'm wondering if there is any way to accomplish the installation of the feature. - Superfreak3 10 years ago
  • Try
    MsiExec /I {ProductCode} ADDLOCAL="Feature1,Feature2" /qb!
    Feature names can be found in msi Feature table". If required log the install to see what's happening. - SnowLyric 10 years ago
  • I understand that, but I'll somehow have to determin the ADDLOCAL list on the fly. - Superfreak3 10 years ago
  • This might help you. http://msdn.microsoft.com/en-us/library/windows/desktop/aa368007(v=vs.85).aspx
    "---
    msidbComponentAttributesTransitive
    64
    0x0040
    If this bit is set, the installer reevaluates the value of the statement in the Condition column upon a reinstall. If the value was previously False and has changed to True, the installer installs the component. If the value was previously True and has changed to False, the installer removes the component even if the component has other products as clients.

    This bit should only be set for transitive components.
    ----"

    On REINSTALLMODE you've tried http://msdn.microsoft.com/en-us/library/windows/desktop/aa371175(v=vs.85).aspx

    "---
    Note that even if REINSTALL is set to ALL, only those features that were already installed previously are reinstalled. Thus, if REINSTALL is set for a product that is yet to be installed, no installation action will take place at all.
    ---" - SnowLyric 10 years ago
  • My condition is on the Feature and the components contained within that feature are not conditioned. I guess I could try conditioning them and setting the Reevaluate Condition attribute (InstallShield world) on each. - Superfreak3 10 years ago
  • Alright good luck and keep us posted! - SnowLyric 10 years ago
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ