InstallShield 2009 basic MSI silent install: how to set "Repair" by default

Samir picture Samir · Jun 24, 2009 · Viewed 10.1k times · Source

Install shield premiere 2009: Basic MSI from command line typing setup.exe /s /v/qn installs silently. But if its installed once before it chooses "Modify" by default and doesn't go for replacing files. But i need to copy again the files. How to perform "Repair" on second silent install by default?

Answer

Stein Åsmul picture Stein Åsmul · Jun 30, 2009

First of all: it looks like we need some more details as to what you are trying to achieve. do you want to reinstall the product to fix any broken components, or do you want to install a new version of the product (potentially side-by-side with the previous setup).

William's answer looks correct, but there may be some issues with the quotes. The behavior you describes indicates that Windows Installer wasn't able to parse the command line. I haven't tested this but try:

Setup.exe /s /v"/f {11111111-1111-1111-1111-111111111111} /qn"

Some background info: setup.exe is an Installshield-provider setup launcher. Anything after /V in the command line is passed "as is" to the main Windows Installer exe file msiexec.exe (msiexec.exe command line parameter reference).

Please note that Windows Installer is unlike any prior deployment solution. Once you have installed an MSI, Windows Installer keeps a record of the installation's internal GUIDs. It is hence not possible to install multiple instances of the same product (unless you design the MSI for this).

Some msiexec.exe sample command lines:

Install:

  • msiexec.exe /i MySetup.msi /q

Uninstall:

  • msiexec.exe /x MySetup.msi /qn
  • msiexec.exe /x {11111111-1111-1111-1111-111111111111} /qn

Repair:

  • msiexec.exe /f MySetup.msi /qn
  • msiexec.exe /f {11111111-1111-1111-1111-111111111111} /qn

Admin Image (extract source files from MSI):

  • msiexec.exe /a MySetup.msi TARGETDIR="C:\ExtractSourcesHere"

Remove /qn from any of the above command-lines to run interactively instead of silently.