cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JDM6763
Level 4

Is there a way to debug deferred custom actions?

I have a Basic MSI Project which I inherited. I need to debug this installer.exe but it has deferred custom actions. Is there a way to debug these?

Thanks
Jim
Labels (1)
0 Kudos
(7) Replies
hari14singh
Level 5

yes through windbg.exe.
Attach to the instance of MSIEXEC.exe that is running in the system logon session.
Enable the break on create process event filter (tools -> event filters -> Create Process -> enabled -> not handled) and module load (little noisy you may skip this)
0 Kudos
JDM6763
Level 4

hari14singh wrote:
yes through windbg.exe.
Attach to the instance of MSIEXEC.exe that is running in the system logon session.
Enable the break on create process event filter (tools -> event filters -> Create Process -> enabled -> not handled) and module load (little noisy you may skip this)


Is there not a way to do this using the ISDbg.exe (InstallShield Debugger)?
0 Kudos
DebbieL
Level 17

KB article Q112187 explains how.
0 Kudos
JDM6763
Level 4

DebbieL wrote:
KB article Q112187 explains how.


That KB Article explains a workaround for IS2010 but I'm working with IS2011. I've tried this workaround with IS2011 and I'm still not able to debug deferred InstallScript custom actions.
0 Kudos
DebbieL
Level 17

Ah, I forgot about the following information, which was included in the InstallShield 2011 release notes:
If you set the ISSCRIPTDEBUGPATH property value through the command line while launching a Basic MSI installation in debug mode, the InstallScript Debugger now opens and launches the immediate-execution InstallScript custom actions in the installation. Previously, the InstallScript Debugger was not launched. Note that the InstallScript Debugger requires elevated privileges; thus, it is recommended that you launch the Command Prompt window with elevated privileges and then launch the installation in debug mode from that elevated Command Prompt window.

If you need to debug deferred, commit, or rollback InstallScript custom actions, any path that is specified for the ISSCRIPTDEBUGPATH property value through the command line is not accessible to these custom actions. Therefore, you must add the path of the Setup.dbg file to the registry of the system on which you are debugging. To do so, create the following registry key:
HKCU\Software\InstallShield\ISEngineMajor.Minor
Major is the major version number of InstallShield and Minor is the minor version number of InstallShield.

For example, for InstallShield 2011, create the following registry key if it is not already present:
HKCU\Software\InstallShield\ISEngine17.0

In addition, add a string value called DebugPath to that registry key, and set its value data as the path to the Setup.dbg file.


If you are debugging on a remote machine, make sure that the script debug files that are documented in the Debugging an Installation on Any Computer help topic present and (if appropriate) registered.

I hope that helps.
0 Kudos
JDM6763
Level 4

Debbie,

Thank you very much for the suggestions. I tried both... added the debugpath to the registry as described. After reading the steps pointed to by the link you send, I did notice I was missing the SCiLexxer.dll file. I added that to my debug machine. Still nothing happened. The install ran through as normal.

Jim
0 Kudos
DebbieL
Level 17

You didn't mention: Did you launch the installation from an elevated command prompt? What command line did you use?

Can you provide more details about the environment? Are you trying to debug on your development machine, or on a different machine?

About the InstallScript Debugger files that you are using for debugging: Are they from the same version of InstallShield that you used to build the setup?
0 Kudos