Microsoft Windows Installer und Visual Studio Installer1 Frank Lange Business Solution Group...
-
Upload
griselda-heishman -
Category
Documents
-
view
114 -
download
3
Transcript of Microsoft Windows Installer und Visual Studio Installer1 Frank Lange Business Solution Group...
Microsoft Windows Installer und Visual Studio Installer 1
Frank LangeBusiness Solution GroupMicrosoft GmbH
Email: [email protected]
Windows InstallerWindows InstallerVisual Studio InstallerVisual Studio Installer
Installation und Pflege von Anwendungen unter Installation und Pflege von Anwendungen unter Windows 2000Windows 2000
Installation und Pflege von Anwendungen unter Installation und Pflege von Anwendungen unter Windows 2000Windows 2000
Microsoft Windows Installer und Visual Studio Installer 2
InhaltInhalt
Einleitung
Microsoft Windows Installer
Visual Studio Installer
Fazit und Literatur
Der Installer Service des Windows-Betriebssystems
Das kostenlose Setup-Tool zum Visual Studio
Microsoft Windows Installer und Visual Studio Installer 3
MotivationMotivation
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 OwnershipZAW = Zero Administration Windows
Microsoft Windows Installer und Visual Studio Installer 4
Ziele des Windows InstallerZiele 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 5
Plattform-UnterstützungPlattform-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 !
... 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"
OS?: GetVersionEx()SP?: HKLM/Software/Microsoft/Windows NT/Current Version/CSDVersion = z.B: "Service Pack 4"
(Exkurs)
Microsoft Windows Installer und Visual Studio Installer 6
Plattform-UnterstützungPlattform-Unterstützung
Windows 2000
Kein Problem.
Manche Installer-Funktionalität nur unter Win2000 verfügbar.
Netzadministrator kann Setup starten, um über Nachtauf gelocktem Client-Rechner Anwendungen zuinstallieren.
Netzadministrator kann auf Client-Rechnern Anwendungen erscheinen lassen, welche vom Benutzer beim ersten Anklicken installiert werden („Anbieten“).
Microsoft Windows Installer und Visual Studio Installer 7
InhaltInhalt
Einleitung
Microsoft Windows Installer
Visual Studio Installer
Fazit und Literatur
Microsoft Windows Installer und Visual Studio Installer 8
Traditionelle Setup-ProgrammeTraditionelle Setup-Programme
Skriptgesteuertes Prozedurmodell
Das selbsterstellte Setup implementiert den Code zum Kopieren von Dateien und Überprüfen/Verändern des Systems.
Um eine Deinstallation zu ermöglichen, müssen alle Teile programmatisch entfernt werden.
Ein Setup-Programm kann andere App-Installationen beeinflussen!
if(bed) doStep1;...doStepN;
Microsoft Windows Installer und Visual Studio Installer 9
Problem des ProzedurmodellsProblem des Prozedurmodells
Viele Köche verderben den Brei...
Mach‘ mal, liebes Setup.Mach‘ mal, anderes Setup!
Setup SetupSetupohne nötige Rechte
Microsoft Windows Installer und Visual Studio Installer 10
Richtlinien für SetupsRichtlinien für Setups
Siehe MSDN"Fusing Your Applications to the System Through the Windows95 Shell“ von Jeff Richter
Setup Setup
Weiterbestehende Probleme:z.B. Funktioniert Deinstallation, wenn App beschädigt wurde?
Hoffentlich hält sich jeder dran... – keine Garantie.
Microsoft Windows Installer und Visual Studio Installer 11
Selbstschutz des SystemsSelbstschutz 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 12
Datengesteuertes SetupDatengesteuertes 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 13
Komponente 1,...Komponente n
KomponentenKomponenten
Setup besteht aus Komponenten
Datei(en) mit genau einem ZielpfadRegistry-EinträgeStartmenü-EinträgeDatei-Verknüpfungen (z.B. auf Desktop)
- kleinste Einheit des Setup (z.B. einzelne Datei)
- eindeutige ID (eine GUID) (manche Tools zeigen stellvertretend den Dateinamen = Schlüsseldatei)
Teile einer Komponente
Transaktionskontrolle- wieder rückgängig machen können
Microsoft Windows Installer und Visual Studio Installer 14
Qualifizierte KomponentenQualifizierte Komponenten
Komponenten-Kategorie
Gleichartige Komponenten, welche alternativ einsetzbar (z.B. verschieden lokalisierte Komponenten).
Statt Component ID nun Category ID.
Alternative Komponenten bekommen zur Identifizierung einen Qualifier String (z.B. die LCID ).
KategorieCategory ID
Komponente „deutsch“
KomponenteComponent ID
Komponente „englisch“
Microsoft Windows Installer und Visual Studio Installer 15
COM-KomponentenCOM-Komponenten
Leider – Problem!
Das AUS für Transaktionskontrolle
Registry, Files, ...
Mr. COMregistriert
sich selbst!
Rezept DllRegisterServer()bzw./RegisterServer
Microsoft Windows Installer und Visual Studio Installer 16
COM-Komponenten (2)COM-Komponenten (2)
Ausweg: COM-Komp. über Installer
TransaktionskontrolleRegistry, Files, ...
Rezept Datei
Mit Registry-Entriesfür die COM-Komponente
Microsoft Windows Installer und Visual Studio Installer 17
RichtlinienRichtlinien
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 18
Komponente 1,...Komponente n
Features eines ProduktsFeatures eines Produkts
Endanwender wählt Features
Rechtschreib-PrüfungBilder-Katalog
Beispiel-Dateien
Feature besteht aus Komponenten
Features können hierarchisch strukturiert sein.
Microsoft Windows Installer und Visual Studio Installer 19
Features, Components, Entry PointsFeatures, Components, Entry Points
Component 1Component 1(WordCore)(WordCore)
Component 3Component 3(ExcelCore)(ExcelCore)
Component 2Component 2(MS Speller)(MS Speller)
ProductProduct(Office)(Office)
Feature 2Feature 2(Excel)(Excel)
Feature 1Feature 1(Word)(Word)
Entry PointEntry Point(.doc)(.doc)
Entry PointEntry Point(Shortcut)(Shortcut)
Entry PointEntry Point(.xls)(.xls)
Entry PointEntry Point(Shortcut)(Shortcut)
Entry PointEntry Point(CLSID)(CLSID)
ResourceResource(Registry Key)(Registry Key)
ResourceResource(winword.exe)(winword.exe)
ResourceResource(Registry Key)(Registry Key)
ResourceResource(excel.exe)(excel.exe)
ResourceResource(Registry Key)(Registry Key)
ResourceResource(Mssp.dll)(Mssp.dll)
Feature 3Feature 3(Word Speller)(Word Speller)
Feature 4Feature 4(Excel Speller)(Excel Speller)
Microsoft Windows Installer und Visual Studio Installer 20
Phasen der InstallationPhasen der Installation
Acquisitation
Evtl. Rollback
- 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
Microsoft Windows Installer und Visual Studio Installer 21
Installer verwaltet KomponentenInstaller verwaltet Komponenten
Robustheit
Anbieten von Anwedungen (Win2000)
- 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
a) Assigning = im Startmenü/Desktop sichtbarb) Publishing = unsichtbar z.B. durch andere Apps nutzbar, z.B: als MIME-Typ bereits bekannt
(durch Netzadministrator)
MIME = Multipurose Internet Mail Extentions
Microsoft Windows Installer und Visual Studio Installer 22
Installer – Arbeitsweise einstellenInstaller – Arbeitsweise einstellen
API
MSI-Funktionen und Komponenten-Eigenschaften.
Kommandozeilen-Parameter
MsiExec.EXE kann von Kommandozeile aufgerufen werden
HKCU / Software / Policies / Microsoft / Windows / Installer
Wenige Grund-Einstellungen: z.B. Logging standardmäßig einschalten
Registry-Voreinstellungen
Microsoft Windows Installer und Visual Studio Installer 23
Kommandozeilen-ParameterKommandozeilen-Parameter
MsiExec.EXE
MsiExecMsiExecMsiExecMsiExec...
/fp mypackage/ju mypackage/L logfilepath/qn
fehlende Dateien reparierenAnbieten für den aktuellen BenutzerFehler, Warnungen etc. mitprotokollierenohne Benutzeroberfläche starten
Microsoft Windows Installer und Visual Studio Installer 24
Installations-TypenInstallations-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 25
Installer Database, APIInstaller Database, API
Wer muß damit umgehen?
Entwickler der Tools für Setup-Erstellung.
Funktionen und Aufbauz.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 Groupsz.B. .../ Installer Database Reference / Database Tables
Installer Database
Ein Setup-Paket (MSI-Datei) enthält eine Installer Database mit Infos für datengesteuerte Installation. Features
Components
Shortcuts
Action
Files
Optional CAB
Summary Information Other Tables...
Pointers to source files
Microsoft Windows Installer und Visual Studio Installer 26
Setup erstellenSetup 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 27
InhaltInhalt
Einleitung
Microsoft Windows Installer
Visual Studio Installer
Fazit und Literatur
Microsoft Windows Installer und Visual Studio Installer 28
Visual Studio InstallerVisual Studio Installer
Was ist der VSI?
Woher?
Wie ist VSI positioniert?
Ein kostenloses Tool für die Setup-Erstellung.
Aus dem Internet: http://www.msdn.microsoft.com/vstudio
VSI ist ein brauchbares „arme Leute“-Tool.
Den Herstellern von Profi-Tools (InstallShield, Wise,..) darfkeine Konkurrenz gemacht werden.z.B. keine bedarfsgesteuerte Feature-Installation unterstützt.
Microsoft Windows Installer und Visual Studio Installer 29
VSI aus dem InternetVSI aus dem Internet
Microsoft Windows Installer und Visual Studio Installer 30
VSI StartenVSI Starten
Start /
Programme /
Microsoft Visual Studio 6.0 /
Microsoft Visual Studio Enterprise-Dienstprogramme /
Visual Studio Installer
Im Start-Menü
Microsoft Windows Installer und Visual Studio Installer 31
VSI - ProjekttypenVSI - Projekttypen
Neues Projekt
Microsoft Windows Installer und Visual Studio Installer 32
VSI – Projekttypen (2)VSI – Projekttypen (2)
Leerer Installer
Leeres Mergemodul
Visual Basic Installer
Ein neues MSI-Paket wird erstellt. Die Komponenten werden im Anschluß hinzugefügt.
Für Komponenten, die von mehreren Apps benutzt werden können.Ein Mergemodul (MSM) wird später in andere MSI-Pakete eingebracht.
Aus einem VB-Projekt wird ein Installations-Paket (MSM oder MSI) erstellt.
Microsoft Windows Installer und Visual Studio Installer 33
VSI - DateienVSI - Dateien
.MSI
Installer-Paket(oder MSM-Merge Modul)
.WIPWinInstaller
Projekt
.SLNProjektmappe
Erstellen
VSI
.xyz
Komponenten-Dateien
Microsoft Windows Installer und Visual Studio Installer 34
Aufbau der ZieldateienAufbau der Zieldateien
1 MSI
1 MSI + n CAB
1 MSI + n Dateien
Microsoft Windows Installer und Visual Studio Installer 35
Merge-ModuleMerge-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 36
Mitgelieferte Merge-ModuleMitgelieferte 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 37
Dateisystem
Benutzeroberfläche
Editoren des VSIEditoren des VSI
Registrierung
Verknüpfungen
Verzeichnispfade für Installation
Dialogfelder etc.
Einträge in die Registry
Dateierweiterungen, Verben, Start-Menü, Desktop-Shortcuts
Microsoft Windows Installer und Visual Studio Installer 38
Verzeichnisse erstellen
Dateien hinzufügen
Dateisystem-EditorDateisystem-Editor
Falls Komponente aus mehreren Dateien, dann alle in ein Zielverzeichnis. Anwählen. RKlick auf Schlüsselkomponente...
Gruppieren
Microsoft Windows Installer und Visual Studio Installer 39
Benutzeroberflächen-EditorBenutzeroberflächen-Editor
Setup-Dialoge verwalten
Microsoft Windows Installer und Visual Studio Installer 40
Registrierungs-EditorRegistrierungs-Editor
Registry-Einträge verwalten
Microsoft Windows Installer und Visual Studio Installer 41
Verknüpfungs-EditorVerknüpfungs-Editor
Verknüfpungen verwalten
Dokumenttypen: z.B. Word.DocumentMIME-Typen: für e-mail-Attachments, Internet-SourcesCOM-Objekte: für COM-Interface-ImplementierungenTypbibliotheken: für COM-Interfaces
Microsoft Windows Installer und Visual Studio Installer 42
VSI - DemosVSI - Demos
Arbeiten mit VSI.
Microsoft Windows Installer und Visual Studio Installer 43
InhaltInhalt
Einleitung
Microsoft Installer Service
Visual Studio Installer
Fazit und Literatur
Microsoft Windows Installer und Visual Studio Installer 44
FazitFazit
MS Windows Installer
Erstellen von Setups
Der Microsoft Windows Installer vereinfacht Installations- und Wartungsvorgänge. Das System wird robuster und besser handhabbar.
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 45
Fragen?Fragen?
Microsoft Windows Installer und Visual Studio Installer 46
MSDN Library, Platform SDK
Visual Studio Installer Online-Hilfe
http://msdn.microsoft.com/vstudio/
API, DB-Aufbau
VSI-Benutzung
VSI Download
Mehr InformationenMehr Informationen
Platform SDK Tool „Orca“
Microsoft Windows Installer und Visual Studio Installer 47
GlossarGlossar
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 48
Where do you want to go today?
Where do you want to go today?