Direct Editor

InstallShield 2020

Project:The Direct Editor is available in the following project types:

Basic MSI
DIM
InstallScript
InstallScript MSI
InstallScript Object
Merge Module
MSI Database
MSM Database
QuickPatch
Transform

Note that the following information includes additional project-specific details.

The Direct Editor is a view in InstallShield that lets you review all of the tables in your project file (.ism) or database file (.msi, .msm, or .mst). In some project types, this view also offers functionality for advanced users who are very familiar with the Windows Installer database format.

For Windows Installer–based projects, the Direct Editor can run in two different modes:

Project edit mode—This mode lets you edit tables in the project file. The changes that are made in the Direct Editor are incorporated into the Windows Installer package that InstallShield creates at build time.

Any changes that you make in the other views within InstallShield are reflected in the Direct Editor; in addition, any changes that you make in the Direct Editor are also reflected in the other corresponding views (if available). For example, if you use the Features view to add a new feature to your project, InstallShield automatically adds that feature to the Feature table in the Direct Editor. If you use the Direct Editor view to add the feature, InstallShield automatically updates the Features view accordingly.

When you are working in any of the following Windows Installer–based project types, you are working in project edit mode: Basic MSI, DIM, InstallScript MSI, Merge Module, and QuickPatch.

Direct edit mode—This mode lets you edit tables in the Windows Installer database (.msi, .msm, or .mst file). When you save the changes that you have made in the Direct Editor, InstallShield updates the Windows Installer database.

Many of the other standard InstallShield views are not available in direct edit mode, since they require build-time functionality that is not available when you are directly editing the Windows Installer database.

When you are working in any of the following Windows Installer–based project types, you are working in direct edit mode: MSI Database, MSM Database, and Transform.

Using the Direct Editor in Any Project Type

The Direct Editor has a Tables explorer that lists each table in your project or database. When you select a table in this explorer, the right pane shows the following elements:

A row of buttons and other controls
A spreadsheetlike table

Each row in a table represents a record in your project or database. The parenthetical note in each column heading indicates the type and size of data that you enter in the column. For example, S255 indicates a string with up to 255 characters; I2 indicates a 2-byte integer.

The following table describes all of the buttons and other controls that are displayed when you select a table in the Direct Editor.

Controls in the Direct Editor View

Name of Control

Icon

Description

New Record

Displays the Add Record to Table dialog box, which lets you adds a new row to the selected table.

Edit Selected Record

Displays the Edit Record in Table dialog box, which lets you edit the data in the selected row.

Delete Selected Records

Deletes the selected row or rows.

Cut Selected Records

Removes the currently selected rows and places them on the Clipboard.

Copy Selected Records

Copies the currently selected rows to the Clipboard.

Paste Records

Inserts the rows that are saved to the Clipboard.

Find String

Displays the Find dialog box, which lets you search for instances of a string. This dialog box lets you specify criteria such as whether you want to search in the selected table, or all tables.

Find Next

Searches for the next occurrence of the specified string.

Find and Replace

Displays the Replace dialog box, which lets you search for instances of a string and replace them with a new string. This dialog box lets you specify criteria such as whether you want to search in the selected table, or all tables.

Show Reference Tracking

Toggles the Reference Tracking pane below the Direct Editor. The Reference Tracking pane lets you easily visualize relationships between table records. For more information, see Table Record Reference Tracking.

Search Grid

 

Dynamically filters the records that are displayed in the Direct Editor view according to the string that you specify in this search box. As you type a string in this box, InstallShield hides all of the rows that do not contain it.

Direct Editor Help

Displays the help for the Direct Editor view.

Using the Direct Editor with Project Edit Mode in Windows Installer–Based Projects

In Basic MSI, DIM, InstallScript MSI, Merge Module, and QuickPatch projects, advanced users can use the Direct Editor to perform tasks such as the following:

View all of the tables in the project file (.ism).
Add and remove records from tables.
Cut, copy, and paste records or fields.
Edit individual fields in the tables.
Add custom tables.
Filter the table records that are shown to hide ones that do not contain a specific string.
Search one table or all tables for a specific string and replace it if necessary.
Resize and reorder the columns in a table.

Tip:If you press F1 while a standard Windows Installer table is selected, the Windows Installer Help Library opens to provide information about that specific table.

Note the following details when using the Direct Editor with project edit mode in Windows Installer–based projects:

The File table displays only static data. InstallShield may add additional information, such as dynamically linked files, to the File table in the Windows Installer database that it creates at build time.
Unlike the corresponding tables in the Windows Installer database, tables such as the Binary, Icon, and Patch tables in the .ism file do not store binary data. Rather, they store links to build-source paths.
Column attributes for both standard tables and InstallShield tables cannot be altered while in project edit mode. They can, however, be edited for custom tables. Note that column attributes can be edited in standard, InstallShield, and custom tables in direct edit mode.
You cannot use localizable properties in the Directory table.

Using the Direct Editor with Direct Edit Mode in Windows Installer–Based Projects

In MSI Database, MSM Database, and Transform projects, you can use the Direct Editor to essentially perform all of the tasks that are available in this view with direct edit mode. However, instead of working with tables in the .ism file, you are working directly with the Windows Installer database (.msi, .msm, or .mst).

Using the Direct Editor in InstallScript and InstallScript Object Projects

The Direct Editor in InstallScript and InstallScript Object projects lets you see all of the tables in your .ism file; however, it is recommended that you use the other views in InstallShield to modify these types of projects.

Note that although InstallScript and InstallScript Object projects use many of the same tables that are available in Windows Installer–based projects, many of the common tables have different meanings. In addition, InstallShield ignores custom tables in InstallScript and InstallScript Object projects; custom tables are not available at run time.

Direct Editor Table Insights

The Direct Editor in InstallShield includes several features that provide visual insights into tables, schema information, and validation errors designed to boost the productivity of setup authors or packagers who use the Direct Editor for troubleshooting to identify and resolve advanced problems. These features are described following:

Directory Table Psuedocolumn Displays Resolved Target Directory Path
Column Header Schema Information Tooltips
Table Record Reference Tracking
Broken References Indicator

Directory Table Psuedocolumn Displays Resolved Target Directory Path

InstallShield includes a read-only, grayed out pseudocolumn to the Directory table that displays the resolved path of each row’s directory location. A pseudocolumn behaves like a table column, but is not actually stored in the table. You can sort by the pseudocolumn’s visible text, but you cannot insert, update, or delete its values.

Column Header Schema Information Tooltips

InstallShield provides tooltips on column headers that display the column’s schema information.

Examples

The Directory table receives the following schema tooltips:

 

Column Header

Tooltip

Directory (s72)

Directory: char(72), required

Directory_Parent (S72)

Directory_Parent: char(72), nullable

DefaultDir (l255)

DefaultDir: char(72), localizable, required

ISDescription (S255)

ISDescription: char(255), nullable

ISAttributes (I4)

ISAttributes: long integer, nullable

ISFolderName (S255)

ISFolderName: char(255), nullable

The Binary table receives the following schema tooltips:

 

Column Header

Tooltip

Name (s72)

Name: char(72), required

Data (V0)

Data: stream, nullable

ISBuildSourcePath (S255)

ISBuildSourcePath: char(255), nullable

The CustomAction table receives the following schema tooltips:

 

Column Header

Tooltip

Action (s72)

Action: char(72), required

Type (i2)

Type: short integer, required

Source (S64)

Source: char(64), nullable

Target (S0)

Target: char(0), nullable

ExtendedType (I4)

Extended Type: long integer, nullable

ISComments (S255)

ISComments: char(255), nullable

Table Record Reference Tracking

The Direct Editor includes a Reference Tracking pane that lets you easily visualize relationships between table records. A Show Reference Tracking button at the top of the Direct Editor provides a show/hide toggle of the pane.

Each record may reference one or more other records or be referenced by one or more other records. When a record is highlighted that refers to other records or is referred from other records, the Reference Tracking pane is populated with a Reference Tables section showing the tables in which the references reside and an additional section that displays the actual record references. The record references section includes arrow icons that indicate the direction of the reference, where:

A green arrow pointing to the right indicates that the record that is selected in the Direct Editor table references the record displayed in the Reference Tracking pane.
A blue arrow pointing to the left indicates that the record selected in the Direct Editor table is referenced by the record displayed in the Reference Tracking pane.
Two arrows in both directions (a green arrow pointing right and a blue arrow pointing left) indicate that the record selected in the Direct Editor table references and is referenced by the record displayed in the Reference Tracking pane.

Note:When multiple Direct Editor records are selected, only the “focused” record's references are shown. In addition, if multiple tables appear in the Reference Tables section, this indicates that the record selected in the Direct Editor table references or is referenced by records in multiple tables. You can click any table in the Reference Tables section to view the associated records references.

Tip:In the Reference Tracking pane, you can quickly jump between record references by double-clicking within a cell.

Broken References Indicator

There are instances where a Direct Editor table record might reference a foreign key record that no longer exists. InstallShield displays the cells of such broken references with a red fill color to call attention to the broken reference.

For example, if the Directory_ column in the Component table references a directory name that is not found in the Directory table, then the Directory_ column is filled in red.

Note:The Direct Editor broken reference indicator is unrelated to the Maintain referential integrity check box on the Preferences tab of the Options dialog box. While the Maintain referential integrity setting is designed to update the foreign keys when you modify a primary key, the purpose of the broken reference indicator is to display broken references to help you easily identify orphaned records. Therefore, broken references are displayed regardless of the selection of the Maintain referential integrity setting.

See Also