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


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


  • This content is currently hidden from public view.
    Reason: Removed by member request
    For more information, visit our FAQ's.
Please log in to comment



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

Answered 05/31/2013 by: SnowLyric
Second Degree Brown Belt

  • 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.
  • 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.
  • I understand that, but I'll somehow have to determin the ADDLOCAL list on the fly.
  • This might help you. http://msdn.microsoft.com/en-us/library/windows/desktop/aa368007(v=vs.85).aspx
    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.
  • 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.
  • Alright good luck and keep us posted!
Please log in to comment
Answer this question or Comment on this question for clarity