| [ Overview | First | Previous | Next | Last ] |
Standalone Debugger
MSIStudio comes with a fully featured debugging environment for Windows Installer packages. This is a separate application called MSIDebugger. It can be launched standalone from the Start menu or from the Tools menu of MSIStudio.
The layout of the MSIDebugger interface is similar to that of MSIStudio. The project itself is a Windows Installer package rather than an XML project file. There is a solution pane which displays the sequence tables of the package. The main window displays the content of the tables, the current values of Installer properties, and also the log line listings. The user must first open a package for debugging using the File/Open command. When launched from the MSIStudio Tools menu, it will open the most recently built installer package for the currenly loaded project.

Main Application Window
Once a setup package has been loaded into the workspace, the setup can be executed using the Run (F5) command. This will begin execution at the beginning of the User Interface sequence table. Typically, the installation process involves running the User Interface sequence followed by the Execute sequence. When debugging it is often more useful to step over individual rows in the sequence tables to see the effects of the execution of each row. Using the Step Over (F10) and Step Into (F11) commands allows finer control through the debugging of the setup. Breakpoints can be set in the sequence tables so that it is quick to get to the point of interest. Pressing F5 will run the installation to the next breakpoint.
Initially, the contents of the main window is taken up with a listing of the database tables in the setup package. As the setup proceeds, the data in these tables is modified and additional temporary tables can be created or destroyed. These modifications are never saved into the original setup package, but exist only in memory to assist the installer as it executes the package. At any point during the installation, you can check the contents of these tables by selecting a table which then has the contents of the table displayed in the right hand split window. Data that has been modified since the last command is displayed in yellow. This makes it easy to track the changes that have been made as each statement in the setup sequence table is executed.

Properties View
In addition to the tables view, there are Properties and Log views. The Properties view displays all the properties that exist in the install, temporary and permanent, and their respective values. This is essentially the same as viewing the contents of the Properties database table, but as properties are so fundamental to the installation, it is useful to have them always readily available in their own window. Any properties that are modified by the most recent sequence statement are displayed with a green background. Properties are used to pass information from the command line to the install, and are used to communicate user choices from the user interface to the executable portion of the installation when the resources are actually installed. This view is especially useful as the user steps through a sequence of dialog boxes to track decisions made.

Log View
The Log view lists all the log data generated by Windows Installer. MSIDebugger will instruct the runtime to generate the most detailed log information possible. This is often very useful when debugging setups. Additionally, custom actions can write out log information that can been displayed here, assisting with debugging.
There is a Watch window which evaluates the values of expressions as the setup proceeds. Property names and expressions can be placed here. Properties will display their current value, and expressions will evaluate to TRUE or FALSE.
By default, the setup will start in the Install UI Sequence with full user interface. These settings can be changed from the Debug/Settings menu. The debugger can start with the Admin or Advertise sequence with or without a user interface.
| [ Overview | First | Previous | Next | Last ] |
