Windows Installer Visual Studio Installer Track 4, Session IC1 Microsoft Visual Installer Services und Visual Installer 1 Windows Installer Visual Studio Installer Installation und Pflege von Anwendungen unter Windows 2000 Frank Lange Business Solution Group Microsoft GmbH Email: franklan@microsoft.com Microsoft Windows Installer und Visual Studio Installer
Inhalt Einleitung Microsoft Windows Installer Visual Studio 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
Motivation TCO Win2000 ZAW-Initiative 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
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
Plattform-Unterstützung Track 4, Session IC1 Microsoft Visual Installer Services und Visual Installer 5 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. Auf einem NT4 ist es oft nötig, zuerst ein bestimmtes Service Pack zu installieren. Wer sein Setup über SDK-Funktionalität programmiert, wird die im schwarzen Kästchen angedeuteten Schnittstellen nutzen müssen, um den Rechner zu untersuchen. OS?: GetVersionEx() SP?: HKLM/Software/Microsoft/Windows NT/Current Version/CSDVersion = z.B: "Service Pack 4" Microsoft Windows Installer und Visual Studio Installer
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
Inhalt Einleitung Microsoft Windows Installer Visual Studio Installer Fazit und Literatur Microsoft Windows Installer und Visual Studio Installer
Traditionelle 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
Problem des Prozedurmodells Viele Köche verderben den Brei... Mach‘ mal, liebes Setup. Mach‘ mal, anderes Setup! System Setup ohne nötige Rechte Setup Setup Microsoft Windows Installer und Visual Studio Installer
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. System Setup Weiterbestehende Probleme: z.B. Funktioniert Deinstallation, wenn App beschädigt wurde? Microsoft Windows Installer und Visual Studio Installer
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. System Microsoft Windows Installer und Visual Studio Installer
Datengesteuertes Setup Microsoft Windows Installer - wacht über das System - protokolliert die Installationen - macht Setup zur Transaktion - kann mit Admin-Rechten arbeiten MWI Rezept Rezept System Microsoft Windows Installer und Visual Studio Installer
System Komponenten Setup besteht aus Komponenten ... 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) System Transaktionskontrolle - wieder rückgängig machen können Microsoft Windows Installer und Visual Studio Installer
Qualifizierte 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 ). Kategorie Category ID Komponente „deutsch“ Komponente Component ID Komponente „englisch“ Microsoft Windows Installer und Visual Studio Installer
registriert sich selbst! COM-Komponenten Leider – Problem! Mr. COM registriert sich selbst! Rezept DllRegisterServer() bzw. /RegisterServer System Das AUS für Transaktionskontrolle Registry, Files, ... Microsoft Windows Installer und Visual Studio Installer
System COM-Komponenten (2) Ausweg: COM-Komp. über Installer Rezept Datei System Mit Registry-Entries für die COM-Komponente Transaktionskontrolle Registry, Files, ... Microsoft Windows Installer und Visual Studio Installer
Richtlinien Aufteilung in Komponenten Wiederverwendbarkeit - 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
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
Features, Components, Entry Points Product (Office) Feature 2 (Excel) Feature 1 (Word) Feature 3 (Word Speller) Feature 4 (Excel Speller) Component 1 (WordCore) Component 3 (ExcelCore) Component 2 (MS Speller) Resource (Registry Key) (winword.exe) (excel.exe) (Mssp.dll) Entry Point (.doc) (Shortcut) (.xls) (CLSID) Microsoft Windows Installer und Visual Studio Installer
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
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
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
Kommandozeilen-Parameter MsiExec.EXE 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
Installations-Typen Administrative Installation Lokale 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
Installer Database, API Features Components Shortcuts Action Files Optional CAB Summary Information Other Tables... Pointers to source files Installer Database Ein Setup-Paket (MSI-Datei) enthält eine Installer Database mit Infos für datengesteuerte Installation. Wer muß damit umgehen? Entwickler der Tools für Setup-Erstellung. 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
Setup erstellen Die schlechte Nachricht Die gute 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
Inhalt Einleitung Microsoft Windows Installer Visual Studio Installer Fazit und Literatur Microsoft Windows Installer und Visual Studio Installer
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
VSI aus dem Internet Microsoft Windows Installer und Visual Studio Installer
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
VSI - Projekttypen Neues Projekt Microsoft Windows Installer und Visual Studio Installer
Visual Basic Installer 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
(oder MSM-Merge Modul) VSI - Dateien Erstellen .SLN Projektmappe VSI .WIP .MSI WinInstaller Projekt Installer-Paket (oder MSM-Merge Modul) .xyz Komponenten- Dateien Microsoft Windows Installer und Visual Studio Installer
Aufbau der Zieldateien 1 MSI 1 MSI + n CAB 1 MSI + n Dateien Microsoft Windows Installer und Visual Studio Installer
Merge-Module Prinzipiell Merge Modul (MSM) 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
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
Editoren des VSI Dateisystem Benutzeroberfläche Registrierung 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
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
Benutzeroberflächen-Editor Setup-Dialoge verwalten Microsoft Windows Installer und Visual Studio Installer
Registrierungs-Editor Registry-Einträge verwalten Microsoft Windows Installer und Visual Studio Installer
Verknüfpungen verwalten Verknüpfungs-Editor Verknüfpungen verwalten Dokumenttypen: z.B. Word.Document MIME-Typen: für e-mail-Attachments, Internet-Sources COM-Objekte: für COM-Interface-Implementierungen Typbibliotheken: für COM-Interfaces Microsoft Windows Installer und Visual Studio Installer
VSI - Demos Arbeiten mit VSI. Microsoft Windows Installer und Visual Studio Installer
Inhalt Einleitung Microsoft Installer Service Visual Studio Installer Fazit und Literatur Microsoft Windows Installer und Visual Studio Installer
Fazit MS Windows Installer Erstellen von Setups 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
Fragen? Microsoft Windows Installer und Visual Studio Installer Track 4, Session IC1 Microsoft Visual Installer Services und Visual Installer 45 Microsoft Windows Installer und Visual Studio Installer
Mehr Informationen http://msdn.microsoft.com/vstudio/ Platform SDK Track 4, Session IC1 Microsoft Visual Installer Services und Visual Installer 46 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
Glossar Bedarfgesteuerte Installation Datengesteuertes Setup SFP 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
Where do you want to go today? Microsoft Windows Installer und Visual Studio Installer