-1

I have a msp file (an update). It needs to be executed with /qb option (because of some services it installs). I thought IExpress.exe will create a self-extracting-and-run exe of this msp and I would be able to pass the /qb argument for run.

I tried to set the argument in step "Install program to launch" as

msiexec /qb /update

But this gives an error "bad parameter".

Is there a way to pass arguments at "msp-run" time using IExpress.exe?

sambha
  • 1,333
  • 3
  • 17
  • 30
  • i've been looking for a solution for this for days, and then decided to write my own self extractor. – Marian Theisen May 14 '14 at 17:17
  • @MarianTheisen Looks like that's where this is headed. Would have liked to avoid the where-to-extract & delete-after-install coding issues. – sambha May 14 '14 at 17:36

2 Answers2

0

You need to actually pass the name of the MSP file like:

msiexec /qb /p foo.msp
fission
  • 1,170
  • 18
  • 35
0

/qb (basic ui) and /qn (no ui) are silent installations for MSI (meaning the UI sequence is not processed). There are special considerations for silent installs.

See:

Applying Patches

Applying Patches in Silent Mode

There are two ways you can apply a patch in silent mode: either launch MsiExec.exe with the /qn command-line parameter, or pass /s to Update.exe.

There is an important consideration to bear in mind when applying a patch in silent mode. In order to operate correctly, the Windows Installer property REINSTALL must be set to ALL and REINSTALLMODE to omus whenever you apply a patch. Since Update.exe always sets these properties at the command line, you do not have to do anything extra if your patch package is applied with Update.exe.

When a patch package is applied with a full user interface, one of your installation’s default dialogs, PatchWelcome, is displayed. It includes control events to set REINSTALL and REINSTALLMODE with the correct options. However, since this dialog is not displayed when the end-user interface is suppressed, you must set the properties at the command line, as demonstrated below:

msiexec /p 'path to .msp file' /qn REINSTALL=ALL REINSTALLMODE=omus

Because a patch does not modify the existing cached .msi database, including the v setting for REINSTALLMODE is unnecessary.

FWIW, instead of using IExpress or writing your own extractor you could look at Windows Installer XML's Burn bootstrapper engine. It has an MspPackage Element that allows you to abstract all of this away and let Burn handle it for you.

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100