Windows Installer
Visual Studio Installer
Installation und Pflege von Anwendungen unter
Windows 2000
Frank Lange
Business Solution Group
Microsoft GmbH
Email: [email protected]
Microsoft Windows Installer und Visual Studio Installer
1
Inhalt
Einleitung
Microsoft Windows Installer
Der Installer Service des Windows-Betriebssystems
Visual Studio Installer
Das kostenlose Setup-Tool zum Visual Studio
Fazit und Literatur
Microsoft Windows Installer und Visual Studio Installer
2
Motivation
TCO
Einrichten und Administrieren der Rechner soll einfach und
kostengünstig sein.
Win2000 ZAW-Initiative
Eine Microsoft-Initiative, um Probleme und Umständlichkeiten
beim Administrieren der Rechner zu erkennen und zu beseitigen.
TCO = Total Cost of Ownership
ZAW = Zero Administration Windows
Microsoft Windows Installer und Visual Studio Installer
3
Ziele des Windows Installer
Allgemein
Verteilen, Installieren und Pflegen von Anwendungen soll einfach
und robust sein.
Systemstabilität an erster Stelle
Anwendungen sollen keine Seiteneffekte zeigen.
Weder auf andere Anwendungen noch auf das System.
Plattform-Unterstützung
Win95, Win98, NT4, Win2000
Microsoft Windows Installer und Visual Studio Installer
4
Plattform-Unterstützung
Win9x, NT4
Windows Installer evtl. noch nicht auf dem Rechner.
Kein Problem:
Setup mit Bootstrapping erstellen.
D.h. bedarfsmäßig automatische Installer-Installation
durch Setup der App.
NT4 – Service Pack-Installation !
(Exkurs)
... wie bisher z.B. durch vorgeschaltetes Setup-Programm lösbar.
OS?: GetVersionEx()
SP?: HKLM/Software/Microsoft/Windows NT/Current
Version/CSDVersion = z.B: "Service Pack 4"
Microsoft Windows Installer und Visual Studio Installer
5
Plattform-Unterstützung
Windows 2000
Kein Problem.
Manche Installer-Funktionalität nur unter Win2000 verfügbar.
Netzadministrator kann Setup starten, um über Nacht
auf gelocktem Client-Rechner Anwendungen zu
installieren.
Netzadministrator kann auf Client-Rechnern
Anwendungen erscheinen lassen, welche vom Benutzer
beim ersten Anklicken installiert werden („Anbieten“).
Microsoft Windows Installer und Visual Studio Installer
6
Inhalt
Einleitung
Microsoft Windows Installer
Visual Studio Installer
Fazit und Literatur
Microsoft Windows Installer und Visual Studio Installer
7
Traditionelle Setup-Programme
Skriptgesteuertes Prozedurmodell
Das selbsterstellte Setup implementiert den Code zum Kopieren
von Dateien und Überprüfen/Verändern des Systems.
if(bed)
doStep1;
...
doStepN;
Um eine Deinstallation zu ermöglichen, müssen alle Teile
programmatisch entfernt werden.
Ein Setup-Programm kann andere App-Installationen
beeinflussen!
Microsoft Windows Installer und Visual Studio Installer
8
Problem des Prozedurmodells
Viele Köche verderben den Brei...
Mach‘ mal, liebes Setup.
Mach‘ mal, anderes Setup!
Setup
Microsoft Windows Installer und Visual Studio Installer
Setup
Setup
ohne
nötige
Rechte
9
Richtlinien für Setups
Siehe MSDN
"Fusing Your Applications to the System Through the Windows95 Shell“ von Jeff Richter
Hoffentlich hält sich jeder dran... – keine Garantie.
Setup
Setup
Weiterbestehende Probleme:
z.B. Funktioniert Deinstallation, wenn App beschädigt wurde?
Microsoft Windows Installer und Visual Studio Installer
10
Selbstschutz des Systems
System File Protection
Windows 2000 läßt den Austausch von System-DLLs nicht zu.
Selbst wenn mit DOS gebootet wird und DLLs augetauscht
werden. Beim nächsten Win2000-Start werden die System DLLs
wieder restauriert.
Microsoft Windows Installer und Visual Studio Installer
11
Datengesteuertes Setup
Microsoft Windows Installer
- wacht über das System
- protokolliert die Installationen
- macht Setup zur Transaktion
- kann mit Admin-Rechten arbeiten
MWI
Rezept
Rezept
Microsoft Windows Installer und Visual Studio Installer
12
Komponenten
Setup besteht aus Komponenten
Komponente 1,
...
Komponente n
- kleinste Einheit des Setup (z.B. einzelne Datei)
- eindeutige ID (eine GUID)
(manche Tools zeigen stellvertretend den Dateinamen = Schlüsseldatei)
Teile einer Komponente
Datei(en) mit genau einem Zielpfad
Registry-Einträge
Startmenü-Einträge
Datei-Verknüpfungen (z.B. auf Desktop)
Transaktionskontrolle
- wieder rückgängig machen können
Microsoft Windows Installer und Visual Studio Installer
13
Qualifizierte Komponenten
Komponenten-Kategorie
Gleichartige Komponenten, welche alternativ einsetzbar (z.B.
verschieden lokalisierte Komponenten).
Komponente
Component ID
Kategorie
Category ID
Komponente
„deutsch“
Komponente
„englisch“
Statt Component ID nun Category ID.
Alternative Komponenten bekommen zur Identifizierung einen
Qualifier String (z.B. die LCID ).
Microsoft Windows Installer und Visual Studio Installer
14
COM-Komponenten
Leider – Problem!
Mr. COM
registriert
sich selbst!
DllRegisterServer()
bzw.
/RegisterServer
Rezept
Das AUS für
Transaktionskontrolle
Registry, Files, ...
Microsoft Windows Installer und Visual Studio Installer
15
COM-Komponenten (2)
Ausweg: COM-Komp. über Installer
Datei
Rezept
Mit Registry-Entries
für die COM-Komponente
Transaktionskontrolle
Registry, Files, ...
Microsoft Windows Installer und Visual Studio Installer
16
Richtlinien
Aufteilung in Komponenten
- Empfehlung: eine Datei ist eine Komponente
- falls mehrere Dateien, dann immer genau ein Zielverzeichnis
- max. ein COM-Server je Komponente
- keine Datei/Ressouce darf in verschiedenen Komponenten auftreten
- neue Version, die nicht 100% abwärtskompatibel ist,
wird zur einer neuen Komponente mit neuer ID
Wiederverwendbarkeit
- Merge-Module erzeugen
(können in verschiedene Installations-Pakete eingebracht werden)
- verschiedene Developer-Teams können Merge-Module erzeugen,
die in das Produkt-Setup aufgenommen werden.
Microsoft Windows Installer und Visual Studio Installer
17
Features eines Produkts
Endanwender wählt Features
Rechtschreib-Prüfung
Bilder-Katalog
Beispiel-Dateien
Features können
hierarchisch
strukturiert sein.
Feature besteht aus Komponenten
Komponente 1,
...
Komponente n
Microsoft Windows Installer und Visual Studio Installer
18
Features, Components, Entry Points
Product
(Office)
Feature 1
(Word)
Feature 2
(Excel)
Feature 3
(Word Speller)
Component 1
(WordCore)
Feature 4
(Excel Speller)
Component 2
(MS Speller)
Resource
(winword.exe)
Entry Point
(Shortcut)
Resource
(Mssp.dll)
Resource
(Registry Key)
Entry Point
(.doc)
Resource
(Registry Key)
Microsoft Windows Installer und Visual Studio Installer
Entry Point
(CLSID)
Component 3
(ExcelCore)
Resource
(excel.exe)
Entry Point
(Shortcut)
Resource
(Registry Key)
Entry Point
(.xls)
19
Phasen der Installation
Acquisitation
- Was ist zu installieren?
- Was ist auf dem System?
- Synthese der Installationsschritte
(Sequenz-Tabelle aufbauen, Skript generieren)
Execution
- Abarbeiten des Skriptes
- Logfile mitführen, überschriebene Ressourcen temporär sichern
Evtl. Rollback
Microsoft Windows Installer und Visual Studio Installer
20
Installer verwaltet Komponenten
Robustheit
- merkt sich, von welchen Apps eine Komponente installiert wurde
-> mehr als nur RefCounting
- merkt sich die Herkunft aller Bestandteile (Netz, URL, CD,...)
-> automatische Reparatur, falls Dateien fehlen
Bedarfsgesteuerte Feature-Installation
- Komponenten bei Bedarf installieren ohne erneuten Setup-Aufruf
Anbieten von Anwedungen (Win2000)
(durch Netzadministrator)
a) Assigning = im Startmenü/Desktop sichtbar
b) Publishing = unsichtbar z.B. durch andere Apps nutzbar,
z.B: als MIME-Typ bereits bekannt
MIME = Multipurose Internet Mail Extentions
Microsoft Windows Installer und Visual Studio Installer
21
Installer – Arbeitsweise einstellen
API
MSI-Funktionen und Komponenten-Eigenschaften.
Kommandozeilen-Parameter
MsiExec.EXE
kann von Kommandozeile aufgerufen werden
Registry-Voreinstellungen
HKCU / Software / Policies / Microsoft / Windows / Installer
Wenige Grund-Einstellungen: z.B. Logging standardmäßig einschalten
Microsoft Windows Installer und Visual Studio Installer
22
Kommandozeilen-Parameter
MsiExec.EXE
MsiExec
MsiExec
MsiExec
MsiExec
...
/fp mypackage
/ju mypackage
/L logfilepath
/qn
fehlende Dateien reparieren
Anbieten für den aktuellen Benutzer
Fehler, Warnungen etc. mitprotokollieren
ohne Benutzeroberfläche starten
Microsoft Windows Installer und Visual Studio Installer
23
Installations-Typen
Administrative Installation
Ein Setup-Image wird auf einem Netzserver erstellt.
Mit diesem Image können dann die Clients lokal installieren.
Eine voreingestellte Feature-Auswahl kann getroffen werden.
Lokale Installation
Die Installation auf einem Client-Rechner.
Microsoft Windows Installer und Visual Studio Installer
24
Installer Database, API
Installer Database
Ein Setup-Paket (MSI-Datei) enthält eine Installer
Database mit Infos für datengesteuerte Installation.
Features
Components
Shortcuts
Wer muß damit umgehen?
Entwickler der Tools für Setup-Erstellung.
Action
Summary
Information
Optional
CAB
Pointers to
source files
Files
Other Tables...
Funktionen und Aufbau
z.B. MsiOpenDatabase ( dbfilepath, MSIDBOPEN_CREATE, &hDB )
...via SQL nutzbar
Doku zu den Tabellen:
 Platform SDK / Management Services / Setup / Windows Installer / Installer Database
z.B. .../ File Table Groups
z.B. .../ Installer Database Reference / Database Tables
Microsoft Windows Installer und Visual Studio Installer
25
Setup erstellen
Die schlechte Nachricht
Die SDK-Dokumentation ist komplex.
(Support-Vertrag als Ausweg)
Die gute Nachricht
Es gibt Tools!
Profi-Tools:
Wise-Installer, InstallShield für Win Installer, ...
Arme-Leute-Tool: Microsoft Visual Studio Installer
(kostenlos als Visual Studio-Ergänzung)
Microsoft Windows Installer und Visual Studio Installer
26
Inhalt
Einleitung
Microsoft Windows Installer
Visual Studio Installer
Fazit und Literatur
Microsoft Windows Installer und Visual Studio Installer
27
Visual Studio Installer
Was ist der VSI?
Ein kostenloses Tool für die Setup-Erstellung.
Woher?
Aus dem Internet: http://www.msdn.microsoft.com/vstudio
Wie ist VSI positioniert?
VSI ist ein brauchbares „arme Leute“-Tool.
Den Herstellern von Profi-Tools (InstallShield, Wise,..) darf
keine Konkurrenz gemacht werden.
z.B. keine bedarfsgesteuerte Feature-Installation unterstützt.
Microsoft Windows Installer und Visual Studio Installer
28
VSI aus dem Internet
Microsoft Windows Installer und Visual Studio Installer
29
VSI Starten
Im Start-Menü
Start /
Programme /
Microsoft Visual Studio 6.0 /
Microsoft Visual Studio Enterprise-Dienstprogramme /
Visual Studio Installer
Microsoft Windows Installer und Visual Studio Installer
30
VSI - Projekttypen
Neues Projekt
Microsoft Windows Installer und Visual Studio Installer
31
VSI – Projekttypen (2)
Leerer Installer
Ein neues MSI-Paket wird erstellt. Die Komponenten werden im
Anschluß hinzugefügt.
Leeres Mergemodul
Für Komponenten, die von mehreren Apps benutzt werden können.
Ein Mergemodul (MSM) wird später in andere MSI-Pakete eingebracht.
Visual Basic Installer
Aus einem VB-Projekt wird ein Installations-Paket (MSM oder MSI) erstellt.
Microsoft Windows Installer und Visual Studio Installer
32
VSI - Dateien
Erstellen
.SLN
Projektmappe
VSI
.WIP
WinInstaller
Projekt
.MSI
Installer-Paket
(oder MSM-Merge Modul)
.xyz
KomponentenDateien
Microsoft Windows Installer und Visual Studio Installer
33
Aufbau der Zieldateien
1 MSI
1 MSI + n CAB
1 MSI + n Dateien
Microsoft Windows Installer und Visual Studio Installer
34
Merge-Module
Prinzipiell
Für eine Komponente (z.B. DLL) wird ein Merge Modul-Projekt erstellt.
Merge Modul (MSM)
Das Merge-Modul kann in andere Setups
aufgenommen werden.
Komponente dann NIEMALS OHNE MSI installieren
(Referenenz-Kontrolle durch Windows Installer).
Vorsicht bei Komponenten von Fremdanbietern im
selbsterzeugten Merge-Modul (Referenz-Kontrolle!).
Microsoft Windows Installer und Visual Studio Installer
35
Mitgelieferte Merge-Module
Laufzeit-Bibliotheken
VB, MFC, ATL
Pseudo-Module
MDAC.MSM ist nur ein Überprüfungsmodul, ohne MDAC selbst zu enthalten.
Drittanbieter
Drittanbieter liefert MSM-File: schön!
Keine Drittanbieter-Dateien bedenkenlos in ein Merge Modul packen
(wegen Referenzüberprüfung durch Windows Installer).
Stattdessen „SharedLegacyFile“-Eigenschaft setzen).
Microsoft Windows Installer und Visual Studio Installer
36
Editoren des VSI
Dateisystem
Verzeichnispfade für Installation
Benutzeroberfläche
Dialogfelder etc.
Registrierung
Einträge in die Registry
Verknüpfungen
Dateierweiterungen, Verben,
Start-Menü, Desktop-Shortcuts
Microsoft Windows Installer und Visual Studio Installer
37
Dateisystem-Editor
Verzeichnisse erstellen
Dateien hinzufügen
Gruppieren
Falls Komponente aus mehreren Dateien,
dann alle in ein Zielverzeichnis. Anwählen.
RKlick auf Schlüsselkomponente...
Microsoft Windows Installer und Visual Studio Installer
38
Benutzeroberflächen-Editor
Setup-Dialoge verwalten
Microsoft Windows Installer und Visual Studio Installer
39
Registrierungs-Editor
Registry-Einträge verwalten
Microsoft Windows Installer und Visual Studio Installer
40
Verknüpfungs-Editor
Verknüfpungen verwalten
Dokumenttypen:
MIME-Typen:
COM-Objekte:
Typbibliotheken:
z.B. Word.Document
für e-mail-Attachments, Internet-Sources
für COM-Interface-Implementierungen
für COM-Interfaces
Microsoft Windows Installer und Visual Studio Installer
41
VSI - Demos
Arbeiten mit VSI.
Microsoft Windows Installer und Visual Studio Installer
42
Inhalt
Einleitung
Microsoft Installer Service
Visual Studio Installer
Fazit und Literatur
Microsoft Windows Installer und Visual Studio Installer
43
Fazit
MS Windows Installer
Der Microsoft Windows Installer vereinfacht Installations- und
Wartungsvorgänge. Das System wird robuster und besser
handhabbar.
Erstellen von Setups
Zum Erstellen von Setups gibt es Tools, die auf dem Windows Installer
aufsetzen.
Ein erstelltes Installer-Paket (MSI-File) enthält eine Datenbank zur
datengesteuerten Installation.
Das Erstellen eines Merge-Modul (MSM-Files) ist oft empfehlenswert.
Microsoft Windows Installer und Visual Studio Installer
44
Fragen?
Microsoft Windows Installer und Visual Studio Installer
45
Mehr Informationen
MSDN Library, Platform SDK
API, DB-Aufbau
Visual Studio Installer Online-Hilfe
VSI-Benutzung
http://msdn.microsoft.com/vstudio/
VSI Download
Platform SDK
Tool „Orca“
Microsoft Windows Installer und Visual Studio Installer
46
Glossar
Bedarfgesteuerte Installation
Ohne erneuten Setup-Aufruf werden Programm-Funktionalitäten (sog. Features) erst
später beim ersten Verwenden automatisch nachinstalliert.
Datengesteuertes Setup
Im Gegensatz zum traditionell prozeduralen Setup wird nicht der Installations-Code
geschrieben. Eine Datenbank (MSI-File) mit Komponenten, Bedingungen und
Abhängigkeiten wird erstellt. Das System sorgt für die nötigen Installationsschritte.
SFP
System File Protection schützt die Systemdateien des Windows 2000. Das System
wird robuster.
Transaktion
Ein Vorgang, der entweder vollständig abläuft oder im Fehlerfall den vorherigen
Systemzustand wiederherstellt. Ein auf MSI-basierendes Setup ist eine Transaktion.
Microsoft Windows Installer und Visual Studio Installer
47
Where do you want to go today?
Microsoft Windows Installer und Visual Studio Installer
48

Visual Studio Installer