Writing Setup Packages for Your Access Databases

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

 

Sanjay Jacob
Microsoft Corporation

November 2002

Applies to:
     Microsoft® Access
     Microsoft Windows® Installer 2.0

Summary: Learn how Microsoft Access developers can create custom Microsoft Windows Installer (.msi) setup programs for their Access .mdb files using the Northwind sample database as an example. How to include supporting files (help files, readme documents, and so on) into the setup package is also illustrated. (21 printed pages)

Download Odc_accstppkg.exe.

Contents

Introduction
Requirements
Considerations for the Setup Plan
Setting Up Your Directory Structure
Modifying the Directory Table
Modifying the Component Table
Modifying the File Table
Modifying the Media Table
Modifying the Feature Table
Modifying the FeatureComponents Table
Modifying the Shortcut Table
Modifying the Property Table
Using the InstallExecuteSequence Table
Using the InstallUISequence Table
Using the AdminExecuteSequence Table
Using the AdminUISequence Table
Using the AdvtExecuteSequence Table
Adding Summary Information
Modifying the User Interface
Validating Northwind.msi
Conclusion

Introduction

Microsoft® Access developers build solutions that need to be deployed on client machines. Depending on the degree of complexity, Access developers choose from a variety of setup approaches from batch files to custom setup.exe programs to Microsoft Windows® Installer technology in order to create their setup packages. While there is a wide variety of products to suit every complicated setup requirement (for example, the Microsoft Office Developer Packaging Wizard, Microsoft Visual Studio® Installer, Wise for Windows Installer, and InstallShield Developer or InstallShield Express), there are developers who want to create simple yet professional setup packages that bundle up only their Access database that they later ship to their client. The purpose of this paper is to provide you with a template that you can use for this purpose.

Note   If you want to distribute the Access run time along with a packaged database, the Microsoft Office XP Developer Packaging Wizard serves that need.

This article assumes that you have an Access database ready for packaging, Windows Installer 2.0, and the Orca.msi software tool that is capable of creating and editing a Windows Installer (.msi) database.

Requirements

  • ` The installer ships with Microsoft Windows Server 2003, Windows XP, Windows 2000, and Windows Millennium Edition (Windows Me). The installer is also provided as a service pack to Windows NT® version 4.0., Windows 98, and Windows 95. This technology is available as redistributable packages for Windows Installer version 2.0, from the SDK Update site. Two packages are available at this site. One package should only be used to install or upgrade to Windows Installer version 2.0 on Windows Me, Windows 98 and Windows 95. The other package should only be used to install or upgrade to Windows Installer version 2.0 on Windows 2000 and Windows NT, version 4.0 with Service Pack 6. These should not be used to install or upgrade Windows Installer version 2.0 on Windows Server 2003 and Windows XP.
  • Orca. A .msi file is a Windows Installer file. Since these files contain a set of tables, they are sometimes referred to as Windows Installer databases and are not to be confused with Access databases. Analogous to application software that allows you to view and modify the contents of a database, several Windows Installer creation tools are available from independent software vendors. Orca is one such tool. A database editor, Orca lets you view and edit the tables contained in your Windows Installer database file (.msi file). Orca is provided in the Platform SDK Components for Windows Installer Developers.
  • Guidgen.exe. A helpful utility that generates Globally Unique Identifiers (GUIDs) A GUID is a data type that represents a Class Identifier (ClassID). There are a number of places in the sections below where you will need to enter your own GUID into a particular table row. Guidgen.exe is also provided in the Platform SDK Components for Windows Installer Developers.
  • Msiinfo.exe. This is a command-line utility that helps you write to the IStream interface of your msi file. More detail is explained in the Adding Summary Information section later in this article.

In the following sections, we will describe the Northwind.msi sample.

Considerations for the Setup Plan

The Northwind sample, included as a download accompanying this article, has the following specifications:

  • This is a self-installing Windows Installer package that installs the sample Northwind.mdb, its supporting bitmap files, a readme file, a help file installed on first use, and desktop shortcuts.
  • During setup, users have the option of selecting individual features to be installed to run locally, to run-from-source, or to not be installed.
  • During setup, users have the option to change the default directory these files get written to by selecting a "Custom" installation instead of "Typical" installation.
  • The help feature can be presented to users as an install-on-demand feature (installation on demand makes it possible to offer functionality to users and applications in the absence of the files themselves—see Installation-On-Demand for more information). In this example, the help.txt file is never physically installed on the system until the user clicks its shortcut file—this is an especially useful feature if you have large files that don't necessarily get installed for all of your users.
  • The same package also uninstalls the application, removing all application files from the user's computer.
  • In this sample, all data access pages have been removed from Northwind.mdb.

The table below lists the various source files and their destination target.

Table 1. Source files and destination targets

File Description Path to source (create a directory structure that looks like this) Path to target (these are the directories in a typical installation. Your end user can change this by opting for a "Custom" installation)
Northwind.mdb Microsoft Access database <drive>:\Sample\

SourceFiles\Northwind.mdb

<drive>:\ProgramFiles\

Northwind\northwind.mdb

Samples.xls Microsoft Excel Worksheet—installed on demand, installed as a separate feature <drive>:\Sample\

SourceFiles\Samples.xls

<drive>:\ProgramFiles\

Northwind\XLS\Samples.xls

EMPID1.bmp Employee picture <drive>:\Sample\

SourceFiles\EMPID1.bmp

<drive>:\ProgramFiles\

Northwind\EMP1.bmp

(similarly for EMPID2.bmp,….,

EMPID9.bmp)

Employee pictures <drive>:\Sample\

SourceFiles\EMPID2.bmp,…., <drive>:\Sample\

SourceFiles\EMPID9.bmp

<drive>:\ProgramFiles\

Northwind\EMP2.bmp,….,

<drive>:\ProgramFiles\

Northwind\EMP9.bmp

Readme.txt Informational file—always installed <drive>:\Sample\

SourceFiles\Readme.txt

<drive>:\ProgramFiles\

Northwind\Readme.txt

Help.txt Help manual—installed on first use <drive>:\Sample\

SourceFiles\Help.txt

<drive>:\ProgramFiles\

Northwind\Readme.txt

The package also installs these desktop shortcuts:

Table 2. Desktop shortcuts

File Shortcut location Shortcut target

(what gets invoked)

s_Northwind [Desktop Folder] on target machine <drive>:\ProgramFiles\

Northwind\Northwind.mdb

s_Samples [DesktopFolder] on target machine <drive>:\ProgramFiles\

Northwind\Samples.xls

s_Help [DesktopFolder] on target machine <drive>:\ProgramFiles\

Northwind\Help.txt

Setting Up Your Directory Structure

To reproduce this example, create files of the same name as those found in the File column of Table 1 (above) and that reside in a corresponding directory structure as shown in the Path to source column of the same table. Two msi files are provided:

  • A template, Northwind.msi, for you to practice with. Using a database editor like the Orca tool, you may modify the file with the setup information in the sections below.
  • The completed Northwind_Complete.msi installation file pre-populated with setup information from the sections below.

Note   Because of the way we have structured the "DefaultDir" column in Table 3 (below), Northwind.msi and its source files folder must be located at the root of the same directory. For example:

C:\Sample\Northwind.msi

C:\Sample\Source Files\Northwind.mdb

C:\Sample\Source Files\Samples.xls

C:\Sample\Source Files\EMPID1.bmp

Modifying the Directory Table

The installer keeps information about the installation directory structure in the Directory Table. In this section, you add directory structure information for the Northwind.msi sample to the template database you downloaded. Use the Orca database editor or another editor, to open the Directory table in Northwind.msi. Open a blank instance of Orca, select File, then OpenNorthwind.msi. In the left-hand pane, select Directory. In the menu bar, select Tables, then Add Row. Enter the following data:

Table 3. Data to be entered in directory table

DIRECTORY DIRECTORY_PARENT DEFAULTDIR
TARGETDIR   SOURCEDIR
<drive>:\ProgramFiles TARGETDIR .
NORTHWINDDIR <drive>:\ProgramFiles Northwnd|Northwind:Source|SourceFiles
SAMPLES NORTHWINDDIR XLS:
SHORTCUTDIR [DesktopFolder] .
[DesktopFolder] SAMPLES .

The items in the DIRECTORY and DIRECTORY_PARENT columns of the above table help to define the tree structure. Thus, the parent of the SAMPLES folder in the fourth row is NORTHWINDDIR which is the child of the Program Files folder on the user's machine.

The DEFAULTDIR column entries define what should be the name of the directory specified in the DIRECTORY column. For more details, refer to the Using the Directory Table page.

Modifying the Component Table

The installer installs and removes blocks of resources referred to as Windows Installer Components. In our example we define three components in the Component Table; Northwind, Excel and Help (you can define other names for the components if you so choose). For information about how to define your components, see Organizing Applications into Components and Defining Installer Components.

Using Orca, enter the following data into the blank Component table of Northwind.msi:

Note   Every component should be identified with a unique component GUID. Do not reuse the GUIDs shown below in the COMPONENTID column in your sample. Use guidgen.exe to create a new GUID:

  1. Double-click guidgen.exe.
  2. Select the fourth checkbox Registry Format.
  3. Click New Guid
  4. Click Copy.

Your clipboard now contains a new GUID. Paste the contents of the clipboard into the appropriate row in the Component table. You will want to ensure that your GUIDs only contain uppercase letters.

Table 4. Data to be entered in component table

COMPONENT COMPONENTID DIRECTORY ATTRIBUTES CONDITION KEYPATH
Northwind {6019E3DA-95E5-4654-A3FB-2014DA9D0810} NORTHWINDDIR 2   Northwind.mdb
Excel {38706530-A2A7-4622-8B82-B905F74AD943} SAMPLES 2   Samples.xls
Help {CE1041D1-C5B7-4673-8A4D-721D9A00A5A7} NORTHWINDDIR 2   Help.txt

The source and target directories for each component is specified by the value entered into the DIRECTORY column. The installer resolves the location of this directory using the information in the Directory table. The installer uses the key path files specified in the KEYPATH column to detect each component. The remote execution attributes are set in the sample so that the components can be run from source or run locally.

Modifying the File Table

Shown below are the files that go into each of our three components. We will associate each of the files with its containing component in the next section.

Table 5. Data to be entered in file table

COMPONENT RESOURCES
Northwind Northwind.mdb, s_Northwind, Readme.txt, EMPID1.jpg, EMPID2.jpg, EMPID3.jpg, EMPID4.jpg, EMPID5.jpg, EMPID6.jpg, EMPID7.jpg, EMPID8.jpg, EMPID9.jpg
Excel Samples.xls, s_Samples
Help Help.txt, s_Help

Now that the grouping of resources into components has been specified, file attribute information can be added to the installation database via the File Table.

None of the files in the Northwind sample are compressed. See Compressed and Uncompressed Sources for information on adding cabinet files to packages.

The table entries below are self-explanatory. However, in the ATTRIBUTES column, those files that are key files for the component are labeled as 512, meaning that if the installer is unable to install the file for some reason (for example, if the source file cannot be located within the source image), then an error dialog box will appear with the options Retry or Cancel. For the other files in the table below, the options in case of an install error will be Abort, Retry, and Ignore (that is, the user will have the option to complete the install successfully without installing that file).

Use your database editor to open Northwind.msi, add the File Table, and then enter the data in the following two tables:

Note   Change the file sizes in the FILESIZE column to reflect accurate file sizes on your system.

Table 6. Data to be entered in directory table (part 1)

FILE COMPONENT_ FILENAME FILESIZE
Northwind.mdb Northwind Northwind.mdb 1812000
Readme.txt Northwind Readme.txt 1000
EMPID1.bmp Northwind EMPID1.bmp 41000
EMPID2.bmp Northwind EMPID2.bmp 41000
EMPID3.bmp Northwind EMPID3.bmp 41000
EMPID4.bmp Northwind EMPID4.bmp 41000
EMPID5.bmp Northwind EMPID5.bmp 41000
EMPID6.bmp Northwind EMPID6.bmp 41000
EMPID7.bmp Northwind EMPID7.bmp 41000
EMPID8.bmp Northwind EMPID8.bmp 41000
EMPID9.bmp Northwind EMPID9.bmp 41000
Samples.xls Excel Samples.xls 217000
Help.txt Help Help.txt 1000

Table 7. Data to be entered in directory table (part 2)

Version Language ATTRIBUTES SEQUENCE
    512 1
    0 1
    0 1
    0 1
    0 1
    0 1
    0 1
    0 1
    0 1
    0 1
    0 1
    512 1
    512 1

Modifying the Media Table

The Media Table is used to describe the set of disks making up the source media for the installation. Since this article uses uncompressed files, simply enter the following into these columns in your empty Media table:

Table 8. Data to be entered in media table

DISKID LASTSEQUENCE
1 1

Modifying the Feature Table

The installer enables users to install and remove blocks of an application's functionality referred to as Windows Installer Features, modified via the Feature Table.

The Northwind sample installs the following in a hierarchy of parent and child features. In the following list, child features are indented relative to their parent feature. The features should display in this order in the SelectionTree control of the user interface:

Northwind

   Help

Excel

Use your database editor to open Northwind.msi and enter the data in the following two tables into the empty Feature Table:

Table 9. Data to be entered in feature table (part 1)

FEATURE FEATURE_PARENT TITLE DESCRIPTION
Northwind   Northwind database Sample Northwind database
Help Northwind Help file Looking for answers?
Excel   Excel worksheet Sample Excel worksheet

Table 10. Data to be entered in feature table (part 2)

DISPLAY LEVEL DIRECTORY_ ATTRIBUTES
1 3 NORTHWINDDIR 32
5 3 NORTHWINDDIR 4
7 3 Excel 32

Feature Table Data Part 2

In the second table above, setting the DISPLAY attribute to an odd value ensures that the feature appears expanded in the SelectionTree control.

Modifying the FeatureComponents Table

Each Windows Installer Feature uses one or more Windows Installer Components, and features may share components. The FeatureComponents Table defines the relationship between the features and components that you defined in the sections above.

Use your database editor to open Northwind.msi and enter the following data into the empty FeatureComponents table:

Table 11. Data to be entered in FeatureComponents table

FEATURE_ COMPONENT_
Northwind Northwind
Help Help
Excel Excel

Modifying the Shortcut Table

The Shortcut Table and related tables of the installation database hold information needed to install shortcuts. For more information, see the Program Information Tables Group and Editing Installer Shortcuts. In this section you add information that specifies both non-advertised and advertised (Help.txt) shortcuts for the Northwind sample.

Use your database editor to open Northwind.msi and enter the data in the following two tables into the Shortcut table:

Table 12. Data to be entered in FeatureComponents table (part 1)

SHORTCUT DIRECTORY_ NAME COMPONENT_
s_Northwind SHORTCUTDIR Northwnd|Northwind s_Northwind
s_Samples SHORTCUTDIR Sample Excel
s_Help SHORTCUTDIR Help Help

Table 13. Data to be entered in FeatureComponents table (part 2)

TARGET ARGUMENTS DESCRIPTION ICON
Northwind      
Excel      
Help      

In the first table above, the data in the DIRECTORY column is a foreign key into the Directory column of the Directory table specifying the folder to install these shortcuts into. In this case, all shortcuts go onto the user's desktop. The data in the NAME column represents the name of the shortcut to be created. We have added the short filename for systems that do not recognize 8.3 filename formats.

Modifying the Property Table

In this section you add additional information to the Property Table specific to the installation of the Northwind sample. See also the Program Information Tables Group.

There are five properties that are required in every installation package, and these must be updated for the Northwind sample's Property table:

  • ProductCode
  • ProductLanguage
  • Manufacturer
  • ProductVersion
  • ProductName

In addition to the required properties above, you may enter additional properties from the table below. To do so, use your database editor to open Northwind.msi and enter the following data into the Property table. Property names that are links are built-in installer properties. The other properties are author-defined properties. If you intend to reproduce this sample, use different GUID values for the ProductCode and UpgradeCode properties. You also want to ensure that every letter in the GUID string is uppercase.

Table 14. Data to be entered in property table

Property Value
ARPHELPLINK www.office.microsoft.com
BannerBitmap bannrbmp
ButtonText_Back < &Back
ButtonText_Browse Br&owse
ButtonText_Cancel Cancel
ButtonText_Exit &Exit
ButtonText_Finish &Finish
ButtonText_Ignore &Ignore
ButtonText_Install &Install
ButtonText_Next &Next >
ButtonText_No &No
ButtonText_OK OK
ButtonText_Remove &Remove
ButtonText_Reset &Reset
ButtonText_Resume &Resume
ButtonText_Retry &Retry
ButtonText_Return &Return
ButtonText_Yes &Yes
CompleteSetupIcon Complete
ComponentDownload ftp://anonymous@microsoft.com/components/
CustomSetupIcon Custicon
DefaultUIFont DlgFont8
DialogBitmap dlgbmp
DlgTitleFont {&DlgFontBold8}
ErrorDialog ErrorDlg
ExclamationIcon exclamic
False 0
Iagree No
InfoIcon info
InstallerIcon insticon
INSTALLLEVEL 3
InstallMode Typical
Manufacturer Microsoft
PIDTemplate 12345<###-%%%%%%%>@@@@@
ProductCode {18A9233C-0B34-4127-A966-C257386270BC}
ProductID None
ProductLanguage 1033
ProductName Northwind
ProductVersion 01.00.0000
Progress1 Installing
Progress2 installs
PROMPTROLLBACKCOST P
RemoveIcon removico
RepairIcon repairic
Setup Setup
True 1
UpgradeCode {D5496A62-8C86-4007-9955-B3E45D4FCE03}
Wizard Setup Wizard

Using the InstallExecuteSequence Table

The InstallExecuteSequence Table below lists the actions that are executed when the installer executes the top-level INSTALL action. See the Installation Procedure Tables Group, Using a Sequence Table, and the Sequence Table Detailed Example.

If you used the template Northwind.msi provided in this article, the sequence tables in your copy of Northwind.msi already contain suggested action sequences. No changes to these sequences are necessary to author the Northwind installation package.

Table 15. Data to be entered in InstallExecuteSequence table

ACTION CONDITION SEQUENCE
AllocateRegistrySpace NOT Installed 1550
AppSearch   400
BindImage   4300
CCPSearch NOT Installed 500
CostFinalize   1000
CostInitialize   800
CreateFolders   3700
CreateShortcuts   4500
DeleteServices VersionNT 2000
DuplicateFiles   4210
FileCost   900
InstallFiles   4000
InstallFinalize   6600
InstallInitialize   1500
InstallODBC   5400
InstallServices VersionNT 5800
InstallValidate   1400
LaunchConditions   100
MoveFiles   3800
PatchFiles   4090
ProcessComponents   1600
PublishComponents   6200
PublishFeatures   6300
PublishProduct   6400
RegisterClassInfo   4600
RegisterComPlus   5700
RegisterExtensionInfo   4700
RegisterFonts   5300
RegisterMIMEInfo   4900
RegisterProduct   6100
RegisterProgIdInfo   4800
RegisterTypeLibraries   5500
RegisterUser   6000
RemoveDuplicateFiles   3400
RemoveEnvironmentStrings   3300
RemoveFiles   3500
RemoveFolders   3600
RemoveIniValues   3100
RemoveODBC   2400
RemoveRegistryValues   2600
RemoveShortcuts   3200
RMCCPSearch NOT Installed 600
SelfRegModules   5600
SelfUnregModules   2200
SetODBCFolders   1100
StartServices VersionNT 5900
StopServices VersionNT 1900
UnpublishComponents   1700
UnpublishFeatures   1800
UnregisterClassInfo   2700
UnregisterComPlus   2100
UnregisterExtensionInfo   2800
UnregisterFonts   2500
UnregisterMIMEInfo   3000
UnregisterProgIdInfo   2900
UnregisterTypeLibraries   2300
ValidateProductID   700
WriteEnvironmentStrings   5200
WriteIniValues   5100
WriteRegistryValues   5000
RemoveExistingProducts   6700
MigrateFeatureStates   1200
FindRelatedProducts   200

Using the InstallUISequence Table

The InstallUISequence Table below lists actions that are executed when the top-level INSTALL action is executed and the internal user interface level is set to full UI or reduced UI. The installer skips the actions in this table if the user interface level is set to basic UI or to no UI. See User Interface and User Interface Levels, Installation Procedure Tables Group, Using a Sequence Table, and the Sequence Table Detailed Example in the Windows Installer SDK.

If you used the template Northwind.msi, the sequence tables in your copy of Northwind.msi already contain the suggested action sequences. No changes to these sequences should be necessary to author the Northwind installation package.

Table 16. Data to be entered in InstallExecuteSequence table

ACTION CONDITION SEQUENCE
AppSearch   400
CCPSearch NOT Installed 500
CostFinalize   1000
CostInitialize   800
ExecuteAction   1300
ExitDlg   -1
FatalErrorDlg   -3
FileCost   900
LaunchConditions   100
MaintenanceWelcomeDlg Installed AND NOT RESUME AND NOT Preselected 1250
PrepareDlg   140
ProgressDlg   1280
ResumeDlg Installed AND (RESUME OR Preselected) 1240
RMCCPSearch NOT Installed 600
UserExitDlg   -2
WelcomeDlg NOT Installed 1230
MigrateFeatureStates   1200
FindRelatedProducts   200

Using the AdminExecuteSequence Table

The AdminExecuteSequence Table below lists actions that the installer executes when it calls the top-level ADMIN action. See the Installation Procedure Tables Group, Using a Sequence Table, and the Sequence Table Detailed Example.

If you used Northwind.msi, the sequence tables in your copy of Northwind.msi already contain the suggested action sequences. No changes to these sequences should be necessary to author the Northwind sample installation package.

Table 17. Data to be entered in AdminExecuteSequence table

ACTION CONDITION SEQUENCE
CostFinalize   1000
CostInitialize   800
FileCost   900
InstallAdminPackage   3900
InstallFiles   4000
InstallFinalize   6600
InstallInitialize   1500
InstallValidate   1400

Using the AdminUISequence Table

The AdminUISequence Table lists actions that the installer calls when it executes the top-level ADMIN action and the internal user interface level is set to full UI or reduced UI. The installer skips the actions in this table if the user interface level is set to basic UI or no UI. See User Interface and User Interface Levels, Installation Procedure Tables Group, Using a Sequence Table, and the Sequence Table Detailed Example.

If you used the template Northwind.msi, the sequence tables in your copy of Northwind.msi already contains the suggested action sequences. No changes to these sequences should be necessary to install the Northwind sample.

Table 18. Data to be entered in AdminUISequence table

ACTION CONDITION SEQUENCE
AdminWelcomeDlg   1230
CostFinalize   1000
CostInitialize   800
ExecuteAction   1300
ExitDlg   -1
FatalErrorDlg   -3
FileCost   900
PrepareDlg   140
ProgressDlg   1280
UserExitDlg   -2

Using the AdvtExecuteSequence Table

The AdvtExecuteSequence Table below lists actions the installer calls when it executes the top-level ADVERTISE action. See the Installation Procedure Tables Group, Using a Sequence Table, and the Sequence Table Detailed Example.

If you used the template Northwind.msi, the sequence tables in your copy of Northwind.msi already contains the suggested action sequences. No changes to these sequences should be necessary to author the Northwind sample installation package.

Table 19. Data to be entered in AdvtExecuteSequence table

ACTION CONDITION SEQUENCE
CostFinalize   1000
CostInitialize   800
CreateShortcuts   4500
InstallFinalize   6600
InstallInitialize   1500
InstallValidate   1400
PublishComponents   6200
PublishFeatures   6300
PublishProduct   6400
RegisterClassInfo   4600
RegisterExtensionInfo   4700
RegisterMIMEInfo   4900
RegisterProgIdInfo   4800

Adding Summary Information

The following summary information properties must be defined in every installation package, using a software tool to access the IStream interface of the Summary Information Stream. For example, you can use the tool Msiinfo.exe provided in the Platform SDK Components for Windows Installer Developers to set these properties—an example is reproduced below. If these properties are not set, the package will not pass Package Validation.

Table 20. Sumary information (required)

SUMMARY INFORMATION PROPERTY DATA NOTES
Template

(Platform and Language)

;1033 Platform and language used by the database. Leaving the platform field empty indicates the package is platform independent. The ProductLanguage property from the database is typically used for this summary property. The sample's Language ID indicates that the package uses U.S. English.
Revision Number

(Package Code)

{E61815F9-31FC-4023-B8AF-21EC30C5B085} This is the package code GUID that uniquely identifies the sample package. If you reproduce this sample, use a utility such as GUIDGEN to generate a different GUID for your package. The results of GUIDGEN contain lowercase characters.

Note   Use uppercase letters for a valid package code.

Page Count

(Minimum Installer Version)

110 For Windows Installer version 1.0, this property should be set to the Integer 100. For Windows Installer version 1.1, this property should be set to the Integer 110.
Word Count

(Type of Source)

0 The global source type for the package is long file names and uncompressed. See Compressed and Uncompressed Sources and the description of the ATTRIBUTES column of the File table for more information.

The remaining summary information stream properties are what you would see when you view the properties of Northwind.msi using Windows Explorer. While they are not required, if desired, these can be set for the Northwind.msi sample:

Table 21. Sumary information (optional)

SUMMARY INFORMATION PROPERTY DATA NOTES
Title Installation Database Informs users that this database is for an installation rather than a transform or a patch.
Subject Northwind File browsers can display this as the product to be installed with this database.
Keywords Installer, MSI, Database File browsers that are capable of keyword searching can search for these words.
Author Microsoft Corporation Name of the product's manufacturer.
Comments This installer database contains the logic and data required to install Northwind. Informs users about the purpose of this database.
Creating Application Orca Application used to create the installation database. The sample specifies the Orca database editor as an example.
Security 0 The sample database is unrestricted read-write.

To use MsiInfo to add the summary information to the sample, change to the directory containing the database Northwind.msi and use the following command line. Do not reuse the example package ID shown below:

Msiinfo.exe Northwind.msi -T "Installation Database" -J Subject -A 
"Microsoft Corporation" -K "Installer, MSI, Database" -O "This 
installer database contains the logic and data required to install 
Northwind." 
-P ;1033 -V {A2F283AD-65DE-4259-B36F-C976C1C80A61} -G 100 -W 0 -N Orca -U 0

For more details about summary information, see About the Summary Information Stream, Using the Summary Information Stream, and Summary Information Stream Reference.

See the Summary Information Stream Property Set for a complete list of all the summary information properties and Summary Property Descriptions for their descriptions.

Modifying the User Interface

In addition to information discussed in previous sections, Northwind.msi also contains data for a sample user interface. If you used the template Northwind.msi, then this information is present in Northwind.msi as well. The information for the sample user interface is already contained in the following tables—no further action is required:

  • ActionText table
  • Binary table
  • Control table
  • ControlEvent table
  • Dialog table
  • Error table
  • EventMapping table
  • RadioButton table
  • TextStyle table
  • UIText table

The database editor Orca includes a dialog preview option that you can use to preview the dialogs of the user interface that is specified by the data in the above tables.

The sample installation package Northwind.msi is now ready for package validation. Always run validation on a new package before attempting to install the package for the first time. This is discussed in the next section.

Validating Northwind.msi

Authors of installation packages should always run validation on their packages before attempting to install the package for the first time and rerun validation whenever making any changes to the package. Validation scans the database for errors that may appear valid individually but that cause incorrect behavior in the context of the whole database. Attempting to install a package that fails validation can damage the user's system. See the sections Package Validation and Internal Consistency Evaluators.

You can validate the sample package using Orca (on the Tools menu click Validate).

For a description of the error and warning messages returned by validation, see the ICE Reference. Correct all the errors in the package and rerun validation as necessary until the package passes validation without errors.

Once the package passes validation, you can install the sample package by clicking on the Northwind.msi icon or from the command line using the Command Line Options.

This completes the sample installation.

Conclusion

Using an example, this article demonstrates to Access developers how to create professional database setup packages using a variety of tools. Windows Installer technology can be daunting to the first time developer. Fortunately, there are a variety of excellent tools on the market that suit complex business needs. This information should get Access developers new to Installer technology up and running with a custom setup.