Schreiben von Setuppaketen für Access-Datenbanken
Veröffentlicht: 25. Apr 2003 | Aktualisiert: 11. Nov 2004
Von Sanjay Jacob
Lernen Sie anhand einer Northwind-Beispieldatenbank, wie Microsoft Access-Entwickler benutzerdefinierte Microsoft Windows Installer-Setupprogramme (MSI) für ihre Access-MDB-Dateien erstellen.
Auf dieser Seite
Einführung
Anforderungen
Überlegungen zum Setupplan
Einrichten der Verzeichnisstruktur
Ändern der Tabelle "Directory"
Ändern der Tabelle "Component"
Ändern der Tabelle "File"
Ändern der Tabelle "Media"
Ändern der Tabelle "Feature"
Ändern der Tabelle "FeatureComponents"
Ändern der Tabelle "Shortcut"
Ändern der Tabelle "Property"
Verwenden der Tabelle "InstallExecuteSequence"
Verwenden der Tabelle "InstallUISequence"
Verwenden der Tabelle "AdminExecuteSequence"
Verwenden der Tabelle "AdminUISequence"
Verwenden der Tabelle "AdvtExecuteSequence"
Hinzufügen von Übersichtsinformationen
Ändern der Benutzeroberfläche
Überprüfen von "Northwind.msi"
Schlussfolgerung
Einführung
Microsoft® Access-Entwickler erstellen Lösungen, die auf Clientgeräten bereitgestellt werden müssen. Je nach Komplexitätsgrad wählen Access-Entwickler für die Erstellung ihrer Setuppakete aus verschiedenen Setupverfahren aus, wie beispielsweise Batchdateien, benutzerdefinierte setup.exe-Programme, Microsoft Windows® Installer-Technologie usw. Obwohl eine große Vielzahl an Produkten für alle komplizierten Setupanforderungen zur Verfügung steht (beispielsweise Microsoft Office Developer Packaging Wizard, Microsoft Visual Studio® Installer, Wise for Windows Installer sowie InstallShield Developer oder InstallShield Express), gibt es Entwickler, die einfache und doch professionelle Setuppakete erstellen möchten, die lediglich ihre Access-Datenbank bündeln, welche später an den Kunden geliefert wird. Dieser Artikel soll Ihnen als Vorlage dienen, die Sie für diesen Zweck verwenden können.
Anmerkung Wenn Sie die Access-Laufzeit zusammen mit einer verpackten Datenbank vertreiben möchten, können Sie hierzu den Microsoft Office XP Developer Packaging Wizard verwenden.
Bei diesem Artikel wird vorausgesetzt, dass Sie eine verpackungsbereite Access-Datenbank haben und über Windows Installer 2.0 sowie das Orca.msi-Softwaretool verfügen, mit dem Sie eine Windows Installer-Datenbank (MSI) erstellen und bearbeiten können.
Anforderungen
Windows Installer wird mit Microsoft Windows Server 2003, Windows XP, Windows 2000 und Windows Millennium Edition (Windows Me) geliefert. Die Anwendung kann darüber hinaus als Service Pack für Windows NT® (Version 4.0), Windows 98 und Windows 95 erworben werden. Diese Technologie ist in Form von verteilbaren Paketen für Windows Installer (Version 2.0) auf der Website SDK Update erhältlich. Dort finden Sie zwei Pakete. Eines davon dient nur der Installation von oder Aktualisierung auf Windows Installer (Version 2.0) unter Windows Me, Windows 98 und Windows 95. Das andere Paket sollte nur für die Installation von oder Aktualisierung auf Windows Installer (Version 2.0) unter Windows 2000 und Windows NT (Version 4.0 mit Service Pack 6) verwendet werden. Sie können diese Pakete nicht für die Installation von oder Aktualisierung auf Windows Installer (Version 2.0) unter Windows Server 2003 und Windows XP einsetzen.
Orca. Eine MSI-Datei ist eine Windows Installer-Datei. Da diese Dateien mehrere Tabellen enthalten, werden sie manchmal auch als Windows Installer-Datenbanken bezeichnet, sollten aber nicht mit Access-Datenbanken verwechselt werden. Wie Anwendungssoftware, mit der Sie den Inhalt einer Datenbank anzeigen und ändern können, sind auch verschiedene Windows Installer-Erstellungstools bei unabhängigen Softwareanbietern erhältlich. Orca ist eines dieser Tools. Es ist ein Datenbank-Editor, mit dem Sie die in Ihrer Windows Installer-Datenbankdatei (MSI-Datei) enthaltenen Tabellen anzeigen und bearbeiten können. Sie finden Orca auf der Site Platform SDK Components for Windows Installer Developers.
Guidgen.exe. Dies ist ein hilfreiches Dienstprogramm, das Globally Unique Identifier (GUIDs) erstellt. Eine GUID ist ein Datentyp, der einen Klassenbezeichner (ClassID) darstellt. In den nachfolgenden Abschnitten müssen Sie an verschiedenen Stellen Ihre eigene GUID in eine bestimmte Tabellenzeile eingeben. Sie finden Guidgen.exe ebenfalls auf der Site Platform SDK Components for Windows Installer Developers.
Msiinfo.exe. Dieses Befehlszeilen-Dienstprogramm hilft Ihnen dabei, an die IStream-Schnittstelle Ihrer MSI-Datei zu schreiben. Genauere Angaben hierzu finden Sie im Abschnitt Hinzufügen von Übersichtsinformationen weiter unten in diesem Artikel.
In den nachfolgenden Abschnitten werden wir das Northwind.msi-Beispiel beschreiben.
Überlegungen zum Setupplan
Das Northwind-Beispiel, das als Download zu diesem Artikel verfügbar ist, hat folgende Merkmale:
Es ist ein sich selbst installierendes Windows Installer-Paket, das die Beispieldatenbank Northwind.mdb, deren unterstützende Bitmapdateien, eine Infodatei, eine bei der ersten Verwendung installierte Hilfedatei sowie Desktopverknüpfungen installiert.
Während der Installation kann der Benutzer festlegen, dass einzelne, für eine lokale Ausführung zu installierende Elemente so installiert werden, dass sie von der Quelle aus ausgeführt werden können, oder angeben, dass sie gar nicht installiert werden.
Während der Installation kann der Benutzer das Standardverzeichnis ändern, in das diese Dateien geschrieben werden, indem er die Installationsoption Custom anstatt Typical auswählt.
Das Hilfefeature kann Benutzern in Form einer "Installation bei Bedarf" zur Verfügung gestellt werden (eine Installation bei Bedarf macht es möglich, den Benutzern und Anwendungen Funktionalität ohne entsprechende Dateien bereitzustellen - weitere Informationen finden Sie unter Installation-On-Demand). Bei diesem Beispiel wird die eigentliche help.txt-Datei nie wirklich auf dem System installiert, bis der Benutzer auf ihre Verknüpfungsdatei klickt. Dies ist insbesondere dann von Vorteil, wenn es sich um große Dateien handelt, die nicht unbedingt für alle Benutzer installiert werden müssen.
Dasselbe Paket führt auch eine Deinstallation der Anwendung durch, bei der alle Anwendungsdateien vom Computer des Benutzers gelöscht werden.
Bei diesem Beispiel wurden alle Datenzugriffsseiten aus der Datenbank Northwind.mdb entfernt.
Die nachfolgende Tabelle listet die verschiedenen Quelldateien und ihre Zielverzeichnisse auf.
Tabelle 1. Quelldateien und Zielverzeichnisse
Datei |
Beschreibung |
Pfad zur Quelle (Erstellen Sie eine Verzeichnisstruktur, die dieser gleicht.) |
Pfad zum Ziel (Dies sind die Verzeichnisse bei einer Standardinstallation. Ihr Endbenutzer kann dies durch Auswahl der Installationsoption "Benutzerdefiniert" ändern) |
---|---|---|---|
Northwind.mdb |
Microsoft Access-Datenbank |
<Laufwerk>:\Sample\ |
<Laufwerk>:\Programme\ |
Samples.xls |
Microsoft Excel-Arbeitsblatt - Installation bei Bedarf, als separate Funktion installiert |
<Laufwerk>:\Sample\ |
<Laufwerk>:\Programme\ |
EMPID1.bmp |
Mitarbeiterfoto |
<Laufwerk>:\Sample\ |
<Laufwerk>:\Programme\ |
(ähnlich für EMPID2.bmp,.., |
Mitarbeiterfotos |
<Laufwerk>:\Sample\ |
<Laufwerk>:\Programme\ |
Readme.txt |
Informationsdatei - wird immer installiert |
<Laufwerk>:\Sample\ |
<Laufwerk>:\Programme\ |
Help.txt |
Hilfehandbuch - bei erster Verwendung installiert |
<Laufwerk>:\Sample\ |
<Laufwerk>:\Programme\ |
Das Paket installiert auch folgende Desktopverknüpfungen:
Tabelle 2. Desktopverknüpfungen
Datei |
Speicherort der Verknüpfung |
Zielverzeichnis der Verknüpfung (das aufgerufen wird) |
---|---|---|
s_Northwind |
[Desktopordner] auf Zielgerät |
<Laufwerk>:\Programme\ Northwind\Northwind.mdb |
s_Samples |
[Desktopordner] auf Zielgerät |
<Laufwerk>:\Programme\ Northwind\Samples.xls |
s_Help |
[Desktopordner] auf Zielgerät |
<Laufwerk>:\Programme\ Northwind\Help.txt |
Einrichten der Verzeichnisstruktur
Um dieses Beispiel zu reproduzieren, müssen Sie Dateien mit denselben Namen erstellen, wie in der Spalte Datei der Tabelle 1 (oben) aufgeführt, und diese in der entsprechenden Verzeichnisstruktur speichern, wie in der Spalte Pfad zur Quelle derselben Tabelle gezeigt. Es stehen Ihnen zwei MSI-Dateien zur Verfügung:
Eine Vorlage (Northwind.msi), mit der Sie üben können. Mithilfe eines Datenbank-Editors wie dem Orca-Tool können Sie die Setupinformationen der nachfolgenden Abschnitte in die Datei eingeben.
Die fertige Northwind_Complete.msi-Installationsdatei, die die Setupinformationen aus den nachfolgenden Abschnitten bereits enthält.
Anmerkung Aufgrund der Art und Weise, wie wir die Spalte DefaultDir in Tabelle 3 (unten) strukturiert haben, müssen sich Northwind.msi und die zugehörigen Quelldateiordner im Stammverzeichnis desselben Verzeichnisses befinden. Beispiel:
C:\Sample\Northwind.msi
C:\Sample\Source Files\Northwind.mdb
C:\Sample\Source Files\Samples.xls
C:\Sample\Source Files\EMPID1.bmp
Ändern der Tabelle "Directory"
Der Installer bewahrt die Informationen zur Struktur des Installationsverzeichnisses in der Tabelle Directory auf. In diesem Abschnitt fügen Sie der Vorlagendatenbank, die Sie gedownloadet haben, Verzeichnisstrukturinformationen für das Beispiel Northwind.msi hinzu. Öffnen Sie die Directory-Tabelle in Northwind.msi mithilfe des Orca-Editors oder eines anderen Editors. Öffnen Sie dann eine leere Instanz von Orca, klicken Sie auf File und dann Open Northwind.msi. Wählen Sie im linken Bereich Directory aus. Klicken Sie in der Menüleiste auf Tables und dann auf Add Row. Geben Sie die folgenden Daten ein:
Tabelle 3. In die "Directory"-Tabelle einzugebende
DIRECTORY |
DIRECTORY_PARENT |
DEFAULTDIR |
---|---|---|
TARGETDIR |
|
SOURCEDIR |
<Laufwerk>:\Programme |
TARGETDIR |
|
NORTHWINDDIR |
<Laufwerk>:\Programme |
Northwnd|Northwind:Source|SourceFiles |
SAMPLES |
NORTHWINDDIR |
XLS: |
SHORTCUTDIR |
[Desktopordner] |
|
[Desktopordner] |
SAMPLES |
|
Die Elemente in den Spalten DIRECTORY und DIRECTORY_PARENT der oben abgebildeten Tabelle helfen bei der Definition der Verzeichnisstruktur. Dem Ordner SAMPLES in der vierten Zeile ist der Ordner NORTHWINDDIR übergeordnet, der wiederum dem Ordner Programme auf dem Computer des Benutzers untergeordnet ist. Die Einträge in der Spalte DEFAULTDIR legen den Namen des Verzeichnisses fest, das in der Spalte DIRECTORY angegeben ist. Genauere Informationen hierzu erhalten Sie auf der Seite Using the Directory Table.
Ändern der Tabelle "Component"
Der Installer installiert und entfernt Ressourcenblöcke, die auch Windows Installer-Komponenten genannt werden. In unserem Beispiel definieren wir drei Komponenten in der Tabelle Component: Northwind, Excel und Help (Sie können nach Wunsch auch andere Namen für diese Komponenten festlegen). Informationen dazu, wie Sie Ihre Komponenten definieren, finden Sie unter Organizing Applications into Compone nts und Defining Installer Components.
Geben Sie mithilfe von Orca die folgenden Daten in die leere Component-Tabelle von Northwind.msi ein:
Anmerkung Jede Komponente sollte mit einer eindeutigen Komponenten-GUID gekennzeichnet sein. Sie sollten die in der nachfolgenden Spalte COMPONENTID ihres Beispiels aufgeführten GUIDs nicht wiederverwenden. Erstellen Sie eine neue GUID mit guidgen.exe:
Doppelklicken Sie auf guidgen.exe.
Aktivieren Sie das vierte Kontrollkästchen Registry Format.
Klicken Sie auf New Guid.
Klicken Sie auf Copy.
Ihre Zwischenablage enthält jetzt eine neue GUID. Fügen Sie den Inhalt der Zwischenablage in die entsprechende Zeile der Tabelle Component ein. Stellen Sie dabei sicher, dass Ihre GUIDs nur Großbuchstaben enthalten.
Tabelle 4. In die "Component"-Tabelle einzugebende Daten
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 |
Die Quell- und Zielverzeichnisse für jede Komponente werden durch den in die Spalte DIRECTORY eingegebenen Wert bestimmt. Der Installer löst den Speicherort dieses Verzeichnisses mithilfe der Informationen in der Tabelle Directory auf. Der Installer sucht jede Komponente unter Verwendung der Schlüsselpfaddateien, die in der Spalte KEYPATH angegeben sind. Die Attribute für die Remoteausführung sind in dem Beispiel so festgelegt, dass die Komponenten von der Quelle oder lokal ausgeführt werden können.
Ändern der Tabelle "File"
Nachfolgend sind die Dateien aufgeführt, die zu jeder unserer drei Komponenten gehören. Im nächsten Abschnitt werden wir jede dieser Dateien mit der zugehörigen Komponente verknüpfen.
Tabelle 5. In die "File"-Tabelle einzugebende Daten
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 |
Nachdem die Gruppierung der Ressourcen in Komponenten festgelegt ist, können wir der Installationsdatenbank die Dateiattributinformationen mittels der Tabelle File hinzufügen.
Keine Datei des Northwind-Beispiels ist komprimiert. Informationen zum Hinzufügen von CAB-Dateien zu Paketen finden Sie unter Compressed and Uncompressed Sources.
Die folgenden Tabelleneinträge benötigen keiner weiteren Erklärung. Allerdings sind in der Spalte ATTRIBUTES die Schlüsseldateien für die Komponente durch 512 gekennzeichnet. Dies bedeutet, dass der Installer ein Fehlerdialogfeld mit den Optionen Retry oder Cancel anzeigt, wenn er aus irgendeinem Grund eine dieser Schlüsseldateien nicht installieren kann (falls sich die Quelldatei beispielsweise nicht innerhalb des Quellabbildes befindet). Bei den anderen Dateien der Tabelle werden im Falle eines Installationsfehlers die Optionen Abort, Retry und Ignore angezeigt (das heißt, der Benutzer kann die Installation erfolgreich fertig stellen, ohne die betroffene Datei installieren zu müssen).
Öffnen Sie Northwind.msi mithilfe Ihres Datenbank-Editors, fügen Sie die Tabelle File hinzu, und geben Sie dann die aufgeführten Daten in die nachfolgenden zwei Tabellen ein:
Anmerkung Ändern Sie die Dateigrößen in der Spalte FILESIZE, um die genauen Dateigrößen auf Ihrem System festzuhalten.
Tabelle 6. In die "Directory"-Tabelle einzugebende Daten (Teil 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 |
Tabelle 7. In die "Directory"-Tabelle einzugebende Daten (Teil 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 |
Ändern der Tabelle "Media"
Mit der Tabelle Media werden die Datenträger beschrieben, die die Quellmedien für die Installation darstellen. Da die Dateien für diesen Artikel nicht komprimiert sind, können Sie in diese Spalten Ihrer leeren Media-Tabelle einfach Folgendes eingeben:
Tabelle 8. In die "Media"-Tabelle einzugebende Daten
DISKID |
LASTSEQUENCE |
---|---|
1 |
1 |
Ändern der Tabelle "Feature"
Mit dem Installer können Benutzer Anwendungsfunktionsblöcke, auch Windows Installer-Features genannt, installieren oder entfernen, die über die Tabelle Feature geändert wurden.
Das Northwind-Beispiel installiert folgende Elemente in einer aus übergeordneten und untergeordneten Features bestehenden Hierarchie. In der nachfolgenden Liste sind untergeordnete Features im Vergleich zu ihrem übergeordneten Feature eingerückt. Die Features sollten in dieser Reihenfolge im SelectionTree-Steuerelement der Benutzeroberfläche angezeigt werden:
Northwind
Help
Excel
Öffnen Sie Northwind.msi mit Ihrem Datenbank-Editor, und geben Sie diese Daten in die folgenden zwei Tabellen in der leeren Feature-Tabelle ein:
Tabelle 9. In die "Feature"-Tabelle einzugebende Daten (Teil 1)
FEATURE |
FEATURE_PARENT |
TITLE |
DESCRIPTION |
---|---|---|---|
Northwind |
|
Northwind-Datenbank |
Northwind-Beispieldatenbank |
Help |
Northwind |
Hilfedatei |
Benötigen Sie Hilfe? |
Excel |
|
Excel-Arbeitsblatt |
Excel-Beispielarbeitsblatt |
Tabelle 10. In die "Feature"-Tabelle einzugebende Daten (Teil 2)
DISPLAY |
LEVEL |
DIRECTORY_ |
ATTRIBUTES |
---|---|---|---|
1 |
3 |
NORTHWINDDIR |
32 |
5 |
3 |
NORTHWINDDIR |
4 |
7 |
3 |
Excel |
32 |
"Feature"-Tabellendaten, Teil 2
Wenn man in der zweiten Tabelle oben das Attribut DISPLAY auf einen ungeraden Wert setzt, bewirkt man damit, dass das Feature im SelectionTree-Steuerelement erweitert dargestellt wird.
Ändern der Tabelle "FeatureComponents"
Jedes Windows Installer-Feature verwendet eines oder mehrere Windows Installer-Komponenten, und die Features können Komponenten auch gemeinsam nutzen. Die Tabelle FeatureComponents definiert die Beziehung zwischen den Features und den Komponenten, die Sie in den vorhergehenden Abschnitten festgelegt haben.
Öffnen Sie Northwind.msi mit Ihrem Datenbank-Editor, und geben Sie die folgenden Daten in die leere FeatureComponents-Tabelle ein:
Tabelle 11. In die "FeatureComponents"-Tabelle einzugebende Daten
FEATURE_ |
COMPONENT_ |
---|---|
Northwind |
Northwind |
Help |
Help |
Excel |
Excel |
Ändern der Tabelle "Shortcut"
Die Tabelle Shortcut und verwandte Tabellen der Installationsdatenbank enthalten Informationen, die für die Installation von Verknüpfungen benötigt werden. Weitere Informationen hierzu finden Sie unter Program Information Tables Group und Editing Installer Shortcuts. In diesem Abschnitt fügen Sie Informationen hinzu, mit denen sowohl nicht angekündigte als auch angekündigte (Help.txt) Verknüpfungen für das Northwind-Beispiel definiert werden.
Öffnen Sie Northwind.msi mit Ihrem Datenbank-Editor, und geben Sie die Daten der folgenden zwei Tabellen in die Shortcut-Tabelle ein:
Tabelle 12. In die "Shortcut"-Tabelle einzugebende Daten (Teil 1)
SHORTCUT |
DIRECTORY_ |
NAME |
COMPONENT_ |
---|---|---|---|
s_Northwind |
SHORTCUTDIR |
Northwnd|Northwind |
s_Northwind |
s_Samples |
SHORTCUTDIR |
Sample |
Excel |
s_Help |
SHORTCUTDIR |
Help |
Help |
Tabelle 13. In die "Shortcut"-Tabelle einzugebende Daten (Teil 2)
TARGET |
ARGUMENTS |
DESCRIPTION |
ICON |
---|---|---|---|
Northwind |
|
|
|
Excel |
|
|
|
Help |
|
|
|
Die Daten in der Spalte DIRECTORY der ersten oben aufgeführten Tabelle sind ein Fremdschlüssel zur Directory-Spalte der Directory-Tabelle, der den Ordner angibt, in dem diese Verknüpfungen installiert werden sollen. In diesem Fall werden alle Verknüpfungen auf dem Desktop des Benutzers gespeichert. Die Daten in der Spalte NAME stellen den Namen der zu erstellenden Verknüpfung dar. Wir haben den kurzen Dateinamen für Systeme hinzugefügt, die 8.3-Dateinamenformate nicht erkennen.
Ändern der Tabelle "Property"
In diesem Abschnitt fügen Sie der Tabelle Property weitere Informationen hinzu, die sich auf die Installation des Northwind-Beispiels beziehen. Sehen Sie hierzu auch Program Information Tables Group.
Jedes Installationspaket benötigt fünf Eigenschaften. Diese müssen für die Property-Tabelle des Northwind-Beispiels aktualisiert werden:
ProductCode
ProductLanguage
Manufacturer
ProductVersion
ProductName
Zusätzlich zu diesen benötigten Eigenschaften können Sie noch weitere Eigenschaften aus der nachfolgenden Tabelle eingeben. Öffnen Sie dazu Northwind.msi mit Ihrem Datenbank-Editor, und geben Sie die nachfolgenden Daten in die Property-Tabelle ein. Eigenschaftennamen, die als Link formatiert sind, sind integrierte Installer-Eigenschaften. Bei den anderen Eigenschaften handelt es sich um vom Autor definierte Eigenschaften. Wenn Sie dieses Beispiel reproduzieren möchten, sollten Sie andere GUID-Werte für die Eigenschaften ProductCode und UpgradeCode verwenden. Außerdem müssen Sie sicherstellen, dass jeder Buchstabe in der GUID-Zeichenfolge großgeschrieben ist.
Tabelle 14. In die "Property"-Tabelle einzugebende Daten
Property |
Value |
---|---|
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 |
DlgFont8 |
|
DialogBitmap |
dlgbmp |
DlgTitleFont |
{&DlgFontBold8} |
ErrorDialog |
ErrorDlg |
ExclamationIcon |
exclamic |
False |
0 |
Iagree |
No |
InfoIcon |
info |
InstallerIcon |
insticon |
3 |
|
InstallMode |
Typical |
Microsoft |
|
12345<###-%%%%%%%>@@@@@ |
|
{18A9233C-0B34-4127-A966-C257386270BC} |
|
None |
|
1033 |
|
Northwind |
|
01.00.0000 |
|
Progress1 |
Installing |
Progress2 |
installs |
P |
|
RemoveIcon |
removico |
RepairIcon |
repairic |
Setup |
Setup |
True |
1 |
{D5496A62-8C86-4007-9955-B3E45D4FCE03} |
|
Wizard |
Setup Wizard |
Verwenden der Tabelle "InstallExecuteSequence"
Die nachfolgende Tabelle InstallExecuteSequence enthält die Aktionen, die durchgeführt werden, wenn der Installer die Aktion INSTALL der obersten Ebene ausführt. Weitere Informationen finden Sie unter Installation Procedure Tables Group, Using a Sequence Table und Sequence Table Detailed Example.
Wenn Sie die mit diesem Artikel gelieferte Vorlage Northwind.msi verwendet haben, dann enthalten die Sequence-Tabellen in Ihrer Kopie von Northwind.msi bereits Vorschläge für Aktionssequenzen. Sie müssen zum Schreiben des Northwind-Installationspaketes keine Änderungen an diesen Sequenzen vornehmen.
Tabelle 15. In die "InstallExecuteSequence"-Tabelle einzugebende Daten
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 |
Verwenden der Tabelle "InstallUISequence"
Die nachfolgende Tabelle InstallUISequence enthält die Aktionen, die durchgeführt werden, wenn die Aktion INSTALL der obersten Ebene ausgeführt wird und die interne Benutzeroberflächenebene auf Full UI oder Reduced UI eingestellt ist. Der Installer überspringt die Aktionen dieser Tabelle, wenn die Benutzeroberflächenebene auf Basic UI oder No UI gesetzt ist. Weitere Informationen finden Sie unter User Interface sowie User Interface Levels, Installation Procedure Tables Group, Using a Sequence Table und Sequence Table Detailed Example im Windows Installer SDK.
Wenn Sie die Vorlage Northwind.msi verwendet haben, dann enthalten die Sequence-Tabellen in Ihrer Kopie von Northwind.msi bereits Vorschläge für Aktionssequenzen. Zum Schreiben des Northwind-Installationspaketes sollten keine Änderungen mehr an diesen Sequenzen vorgenommen werden müssen.
Tabelle 16. In die "InstallExecuteSequence"-Tabelle einzugebende Daten
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 |
Verwenden der Tabelle "AdminExecuteSequence"
Die nachfolgende Tabelle AdminExecuteSequence enthält die Aktionen, die der Installer ausführt, wenn er die Aktion ADMIN der obersten Ebene aufruft. Weitere Informationen finden Sie unter Installation Procedure Tables Group, Using a Sequence Table und Sequence Table Detailed Example.
Wenn Sie Northwind.msi verwendet haben, dann enthalten die Sequence-Tabellen in Ihrer Kopie von Northwind.msi bereits Vorschläge für Aktionssequenzen. Zum Schreiben des Northwind-Beispielinstallationspaketes sollten keine Änderungen mehr an diesen Sequenzen vorgenommen werden müssen.
Tabelle 17. In die "AdminExecuteSequence"-Tabelle einzugebende Daten
ACTION |
CONDITION |
SEQUENCE |
---|---|---|
CostFinalize |
1000 |
|
CostInitialize |
800 |
|
FileCost |
900 |
|
InstallAdminPackage |
3900 |
|
InstallFiles |
4000 |
|
InstallFinalize |
6600 |
|
InstallInitialize |
1500 |
|
InstallValidate |
1400 |
Verwenden der Tabelle "AdminUISequence"
Die Tabelle AdminUISequence enthält Aktionen, die der Installer aufruft, wenn er die Aktion ADMIN der obersten Ebene ausführt und die interne Benutzeroberflächenebene auf Full UI oder Reduced UI eingestellt ist. Der Installer überspringt die Aktionen dieser Tabelle, wenn die Benutzeroberflächenebene auf Basic UI oder No UI festgelegt ist. Weitere Informationen finden Sie unter User Interface sowie User Interface Levels, Installation Procedure Tables Group, Using a Sequence Table und Sequence Table Detailed Example.
Wenn Sie die Vorlage Northwind.msi verwendet haben, dann enthalten die Sequence-Tabellen in Ihrer Kopie von Northwind.msi bereits Vorschläge für Aktionssequenzen. Zum Installieren des Northwind-Beispiels sollten keine Änderungen mehr an diesen Sequenzen vorgenommen werden müssen.
Tabelle 18. In die "AdminUISequence"-Tabelle einzugebende Daten
ACTION |
CONDITION |
SEQUENCE |
---|---|---|
AdminWelcomeDlg |
1230 |
|
CostFinalize |
1000 |
|
CostInitialize |
800 |
|
ExecuteAction |
1300 |
|
ExitDlg |
-1 |
|
FatalErrorDlg |
-3 |
|
FileCost |
900 |
|
PrepareDlg |
140 |
|
ProgressDlg |
1280 |
|
UserExitDlg |
-2 |
Verwenden der Tabelle "AdvtExecuteSequence"
Die nachfolgende Tabelle AdvtExecuteSequence enthält die Aktionen, die der Installer aufruft, wenn der die Aktion ADVERTISE der obersten Ebene ausführt. Weitere Informationen finden Sie unter Installation Procedure Tables Group, Using a Sequence Table und Sequence Table Detailed Example.
Wenn Sie die Vorlage Northwind.msi verwendet haben, dann enthalten die Sequence-Tabellen in Ihrer Kopie von Northwind.msi bereits Vorschläge für Aktionssequenzen. Zum Schreiben des Northwind-Beispielinstallationspaketes sollten keine Änderungen mehr an diesen Sequenzen vorgenommen werden müssen.
Tabelle 19. In die "AdvtExecuteSequence"-Tabelle einzugebende Daten
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 |
Hinzufügen von Übersichtsinformationen
Die nachfolgenden Übersichtsinformationseigenschaften müssen in jedem Installationspaket definiert werden. Verwenden Sie ein entsprechendes Softwaretool, um auf die IStream-Schnittstelle des Summary Information Stream (Übersichtsinformationsstream) zuzugreifen. Sie können zum Festlegen dieser Eigenschaften beispielsweise das Tool Msiinfo.exe verwenden, das auf der Site Platform SDK Components for Windows Installer Developers enthalten ist - nachfolgend finden Sie ein Beispiel dafür. Wenn Sie diese Eigenschaften nicht festlegen, dann besteht das Paket die Paketüberprüfung nicht (siehe Package Validation).
Tabelle 20. Übersichtsinformationen (erforderlich)
ÜBERSICHTSINFORMATIONSEIGENSCHAFT |
DATEN |
ANMERKUNGEN |
---|---|---|
Template |
;1033 |
Die von der Datenbank verwendete Plattform und Sprache. Wenn Sie das Feld für die Plattform leer lassen, bedeutet dies, dass das Paket plattformunabhängig ist. Die Eigenschaft ProductLanguage der Datenbank wird normalerweise für diese Übersichtseigenschaft verwendet. Die Language ID des Beispiels gibt an, dass das Paket amerikanisches Englisch verwendet. |
Revision Number |
{E61815F9-31FC-4023-B8AF-21EC30C5B085} |
Dies ist die Paketcode-GUID, die das Beispielpaket eindeutig kennzeichnet. Wenn Sie dieses Beispiel reproduzieren, müssen Sie mithilfe eines Dienstprogramms wie GUIDGEN eine andere GUID für Ihr Paket generieren. Allerdings enthalten die mit GUIDGEN erstellten GUIDs Kleinbuchstaben. |
Page Count |
110 |
Für Windows Installer (Version 1.0) sollte diese Eigenschaft auf die Ganze Zahl 100 gesetzt werden. Für Windows Installer (Version 1.1) sollte diese Eigenschaft auf die Ganze Zahl 110 gesetzt werden. |
Word Count |
0 |
Für den globalen Quelltyp für das Paket sind lange Dateinamen angegeben, und er ist als nicht komprimiert definiert. Weitere Informationen hierzu finden Sie unter Compressed and Uncompressed Sources sowie in der Beschreibung der ATTRIBUTES-Spalte der File-Tabelle. |
Bei den verbleibenden Eigenschaften des Übersichtsinformationsstreams handelt es sich um die Eigenschaften, die Sie sehen, wenn Sie die Eigenschaften von Northwind.msi mithilfe von Windows Explorer anzeigen. Obwohl diese Eigenschaften nicht unbedingt benötigt werden, können sie nach Wunsch für das Northwind.msi-Beispiel festgesetzt werden:
Tabelle 21. Übersichtsinformationen (optional)
ÜBERSICHTSINFORMATIONSEIGENSCHAFT |
DATEN |
ANMERKUNGEN |
---|---|---|
Titel |
Installationsdatenbank |
Informiert Benutzer darüber, dass diese Datenbank für eine Installation und nicht für eine Transformation oder ein Patch vorgesehen ist. |
Subject |
Northwind |
Dateibrowser können diesen Eintrag als das mit dieser Datenbank zu installierende Produkt anzeigen. |
Keywords |
Installer, MSI, Datenbank |
Dateibrowser, die über Schlüsselwortsuchfunktionen verfügen, können nach diesen Worten suchen. |
Author |
Microsoft Corporation |
Name des Produktherstellers |
Comments |
Diese Installer-Datenbank enthält die Logik und Daten, die für die Installation von Nordwind erforderlich sind. |
Informiert Benutzer über den Zweck dieser Datenbank. |
Creating Application |
Orca |
Die Anwendung, mit der die Installationsdatenbank erstellt wurde. In unserem Fall wird der Orca-Datenbank-Editor als Beispiel angegeben. |
Security |
0 |
Die Beispieldatenbank ist nicht lese- oder schreibgeschützt. |
Um MsiInfo zum Hinzufügen der Übersichtsinformationen zu unserem Beispiel verwenden zu können, ändern Sie das Verzeichnis, das die Northwind.msi-Datenbank enthält, und geben folgende Befehlszeile ein. Sie sollten die unten angezeigte ID des Beispielpakets nicht wiederverwenden:
Msiinfo.exe Northwind.msi -T "Installationsdatenbank" -J Subject -A "Microsoft Corporation" -K "Installer, MSI, Datenbank" -O "Diese Installer-Datenbank enthält die Logik und Daten, die für die Installation von Nordwind erforderlich sind." -P ;1033 -V {A2F283AD-65DE-4259-B36F-C976C1C80A61} -G 100 -W 0 -N Orca -U 0
Weitere Informationen zu den Übersichtsinformationen finden Sie unter About the Summary Information Stream, Using the Summary Information Stream und Summary Information Stream Reference.
Eine vollständige Liste aller Übersichtsinformationseigenschaften und ihre Beschreibungen finden Sie unter Summary Information Stream Property Set bzw. in Summary Property Descriptions.
Ändern der Benutzeroberfläche
Zusätzlich zu den Informationen, die in den vorhergehenden Abschnitten beschrieben wurden, enthält Northwind.msi auch Daten für eine Beispielbenutzeroberfläche. Wenn Sie die Northwind.msi-Vorlage verwendet haben, dann sind diese Informationen auch in Northwind.msi enthalten. Sie finden die Informationen für die Beispielbenutzeroberfläche in den nachfolgend aufgelisteten Tabellen - es sind keine weiteren Aktionen Ihrerseits notwendig:
Tabelle ActionText
Tabelle Binary
Tabelle Control
Tabelle ControlEvent
Tabelle Dialog
Tabelle Error
Tabelle EventMapping
Tabelle RadioButton
Tabelle TextStyle
Tabelle UIText
Der Datenbank-Editor Orca besitzt eine Vorschauoption für Dialogfelder, mit der Sie die Dialogfelder der Benutzeroberfläche ansehen können, die durch die in den oben aufgeführten Dateien enthaltenen Daten definiert wird.
Das Beispielinstallationspaket Northwind.msi ist jetzt bereit für die Paketüberprüfung. Sie sollten ein neues Paket stets überprüfen, bevor Sie es zum ersten Mal installieren. Genaue Erklärungen hierzu finden Sie im nächsten Abschnitt.
Überprüfen von "Northwind.msi"
Autoren von Installationspaketen sollten ihre Pakete immer zuerst überprüfen, bevor sie sie zum ersten Mal installieren, und dies auch bei jeder an dem Paket vorgenommenen Änderung wiederholen. Bei einer Überprüfung wird die Datenbank nach Fehlern durchsucht, die für sich genommen u.U. gültig scheinen, aber im Kontext der gesamten Datenbank inkorrektes Verhalten verursachen können. Durch die Installation eines Paketes, das die Überprüfung nicht bestanden hat, kann das System des Benutzers beschädigt werden. Sehen Sie hierzu die Abschnitte Package Validation und Internal Consistency Evaluators.
Sie können das Beispielpaket mithilfe von Orca überprüfen (klicken Sie im Menü Tools auf Validate).
Eine Beschreibung der Fehler- und Warnmeldungen, die eine Überprüfung zurückgeben kann, finden Sie unter ICE Reference. Korrigieren Sie alle Paketfehler, und wiederholen Sie die Überprüfung so oft wie nötig, bis das Paket sie ohne Fehler besteht.
Wenn das Beispielpaket die Überprüfung bestanden hat, können Sie es durch Klicken auf das Northwind.msi-Symbol oder über die Befehlszeile mithilfe der Befehlszeilenoptionen (siehe Command Line Options) installieren.
Damit ist die Beispielinstallation abgeschlossen.
Schlussfolgerung
Dieser Artikel zeigt Access-Entwicklern anhand eines Beispiels, wie professionelle Datenbanksetuppakete unter Verwendung verschiedener Tools erstellt werden. Die Windows Installer-Technologie kann auf diejenigen, die zum ersten Mal entwickeln, recht entmutigend wirken. Glücklicherweise gibt es eine Reihe hervorragender Tools auf dem Markt, die auch komplexen geschäftlichen Anforderungen gerecht werden. Diese Informationen sollten Access-Entwicklern ohne Erfahrung mit der Installer-Technologie ermöglichen, die notwendigen Schritte eines benutzerdefinierten Setups zu erlernen.