Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Turning MSI logging on from an InstallShield .EXE?

I have a software update that is giving me an error dialog, and no way to see the error logs.

The executable that I run to install the update is identified as InstallShield in the file's Product Name. I get past all the InstallSheild wizards and dialogs just fine, but when it goes to execute the .msi file I get a dialog with a title that reads Windows Installer and text which reads This patch package could not be opened. Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package.

I read here that if you have just a straight .msi file, without InstallShield, you can turn on msi logging by runnning the MSI from the command line and providing the correct arguments, to shed a little more light on the message, but I don't know how to do this when the file is executed inside of an InstallShield executable.

How can I do this?

like image 717
leeand00 Avatar asked Jan 25 '13 17:01

leeand00


People also ask

How do I enable MSI logging?

Enable Windows Installer logging with Group PoliciesUnder Group Policy, expand Computer Configuration, expand Administrative Templates, expand Windows Components, and then select Windows Installer. Double-click Logging, and then click Enabled. In the Logging box, enter the options you want to log. The log file, Msi.

What is InstallShield exe?

InstallShield uses setup.exe as the bootstrap loader to call the Microsoft Windows Installer service. Setup.exe can accept command-line parameters that allow you to perform administrative installations, run silent installations, and complete other administrative tasks.

How do I pass MSI parameters to exe?

Use the /v option to pass command-line options and values of public properties through to Msiexec.exe. Note: If you pass the /v parameter at the command prompt when launching Setup.exe, any parameters that are specified for the CmdLine keyname in Setup.


2 Answers

You can pass command-line parameters from an Installshield .EXE to the contained MSI using /v then double-quote what is being passed.
/lv outputs a Verbose log

So, to generate a verbose log from an installshield executable, run

Setup.exe /V"/lv C:\temp\SetupLog.log"
like image 122
Superbob Avatar answered Oct 23 '22 08:10

Superbob


I have ran into similar problems when troubleshooting InstallShield installers. I usually result to forcing the OS to log the install:

  1. Navigate to the registry: [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
  2. Create a new reg key as follows: Logging=voicewarmup where Logging is the reg key and voicewarmup is the value.
  3. Whenever an installer is run, it will log to the user’s temp directory. The log file will be named MSI#####.LOG where ##### is a string of alphanumeric characters. You can sort by modified date to see the latest logs created.

Note: This will log all installations and some installations may have multiple log files. Generally speaking I would recommend that if you set this reg key to get install logs, that you delete the registry key after getting the log files.

The method presented above is also described here: How to enable windows logging

like image 38
BryanJ Avatar answered Oct 23 '22 08:10

BryanJ