1 / 37

Windows Installer - effektiv einsetzen

Windows Installer - effektiv einsetzen. Professionelle Setup-Features in eigenen Projekten realisieren. Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com. Agenda. Einleitung MSI Grundlagen MSI effektiv einsetzen:  Das MSI-Framework nutzen…

carrington
Download Presentation

Windows Installer - effektiv einsetzen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen Projekten realisieren Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com

  2. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  3. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  4. Setup-Probleme • Undefinierter Systemzustand nach Abbruch des Setups, z.B. wegen Fehler • Unsaubere Deinstallation • User oder anderes Setup löscht oder manipuliert wichtige Files • DLL-Hölle MSI effektiv einsetzen

  5. Einige MSI-Antworten • Saubere Deinstallation • Transaktionale Installation(„Alles oder nichts!“) • Bedarfsgesteuerte Installation von wenig gebrauchten Features oder ganzen Applikationen • Selbstreparatur • Setup-Routine flexibel anpaßbar MSI effektiv einsetzen

  6. Demo Ein Setup mit IQ! MSI effektiv einsetzen

  7. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  8. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  9. if(bed) doStep1; ... doStepN; Skriptgesteuerte Installation • 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! MSI effektiv einsetzen

  10. Rezept Rezept Datenbasiertes Setup • wacht über das System • protokolliert die Installationen • macht Setup zur Transaktion • kann mit Admin-Rechten arbeiten MSI effektiv einsetzen

  11. Windows Installer service Konfigurations- daten Filesystem Registry MSI Architektur Active directory • Paket • Beschreibt den Sollzustand • API • Installiert und konfiguriert Programme und Features • Statusabfrage • Pakete erstellen MSI Pakete Management Tool (z.B. SMS) Applikationen Windows Installer API • Installations-Service im System • Service unter Windows NT • Führt den Setupvorgang durch • Konfigurationsdaten • Was ist wie auf dieser Maschine installiert? MSI effektiv einsetzen

  12. Feature 1 (Word) Feature 2 (Excel) Feature 3 (Word Speller) Feature 4 (Excel Speller) Component 1 (WordCore) Component 2 (MS Speller) Component 3 (ExcelCore) Resource (winword.exe) Entry point (Shortcut) Resource (Mssp.dll) Entry point (CLSID) Resource (excel.exe) Entry point (Shortcut) Resource (Registry key) Resource (Registry key) Entry point (.doc) Resource (Registry key) Entry point (.xls) Komponenten und Features Product (Office) MSI effektiv einsetzen

  13. Spezielles Datenbankformat Vom Entwickler mit Tool (z.B. InstallShield, WISE) erzeugt Enthält relationale Tabellen Ein MSI pro Produkt Produkte haben Features Komponenten Installierbare Resourcen File mit Endung .MSI Die MSI Datenbank CAB (Optional) Features Components Shortcuts Verweise auf zu installierende Files Action Summary Information Files Andere Tabellen... MSI effektiv einsetzen

  14. Demo Einblick in ein MSI-File Tool Orca 1.2: http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/MSDN-FILES/027/001/530/msdncompositedoc.xml MSI effektiv einsetzen

  15. C:\winnt\installer 123456.MSI (Kopie von MyOffice.MSI) = Informationen über Konfigurations-Möglichkeiten Quellpfad Installations-prozeß MyOffice.MSI Registry Tatsächliche Konfiguration der Anwendung Anwendung Caching von Metadaten Zielsystem MSI effektiv einsetzen

  16. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  17. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  18. „Update by Reinstall“ 1 Szenario: • Eine Anwendung wurde geringfügig verändert (Bugfix) • Von der neuen Version wird ein MSI erstellt • Problem: Die alte Version existiert noch auf vielen Rechnern MSI effektiv einsetzen

  19. „Update by Reinstall“ 2 • Metainformation (Files, Versionen etc) von Version 1 der Applikation sind auf dem Rechner im MSI Cache • Metainformationen der Version 2 sind im neuen MSI • Vergleich ergibt die zu kopierenden Files • Konfiguration der Anwendung bleibt erhalten MSI effektiv einsetzen

  20. „Update by Reinstall“ 3 Implementierung: MSIEXEC /fvomus Version2.msi MSI effektiv einsetzen

  21. Demo „Update by Reinstall“ MSI effektiv einsetzen

  22. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  23. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  24. Erkennen und Reparieren 1 Szenario: • Die Applikation soll sich selbst per Menübefehl reparieren können („Erkennen und Reparieren“) MSI effektiv einsetzen

  25. Erkennen und Reparieren 2 „MSI Aware“ Applikationen • „Wissen“, daß sie mit MSI installiert wurden • Implemetieren das MSI-API, um erweiterte Funktionalitäten anzubieten Dim msiInstaller As WindowsInstaller.Installer Set msiInstaller = CreateObject("WindowsInstaller.Installer") MSI effektiv einsetzen

  26. Erkennen und Reparieren 3 Implementierung: msiInstaller.ReinstallProduct MYTEXT_PRODUCTCODE_GUID, _ msiReinstallModeFileOlderVersion Or msiReinstallModeShortcut MSI effektiv einsetzen

  27. Featuresnachinstallieren 1 Szenario: • Ein wenig gebrauchtes Feature (z.B. fremdsprachliche Rechtschreibprüfung) soll aus der Applikation „on demand“ nachinstalliert werden MSI effektiv einsetzen

  28. Features nachinstallieren 2 Implementierung: msiInstallState = msiInstaller.FeatureState( _ MYTEXT_PRODUCTCODE_GUID, _ "MyTextSpeller") If msiInstallState <> msiInstallStateLocal Then If MsgBox("The Spellchecker is currently not installed. " & Chr$(13) & "Would you like to install it?", _ vbQuestion + vbYesNo, "Install Feature") = vbYes Then Call msiInstaller.ConfigureFeature( _ MYTEXT_PRODUCTCODE_GUID, _ "MyTextSpeller", _ msiInstallStateLocal) End If End If MSI effektiv einsetzen

  29. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  30. Agenda • Einleitung • MSI Grundlagen • MSI effektiv einsetzen:  Das MSI-Framework nutzen…  Anwendungsupdates ohne Aufwand  „MSI aware“ Applikationen schreiben…  Features „on demand“ nachinstallieren  „Erkennen und Reparieren“  Installer durch Skripte erweitern…  Seriennnummer überprüfen MSI effektiv einsetzen

  31. Custom Actions 1 • MSI ist durch Skripte oder DLLs erweiterbar • Möglich sind VBScript, JScript, konventionelle DLLs • Austausch von Daten mit der aufrufenden Setup-Instanz über spezielle Objekte (Session, Database) MSI effektiv einsetzen

  32. Custom Actions 2 Implementierung: Sub CheckPID() 'Get the Product ID sProductID = Session.Property("PIDKEY") 'Check if PID is OK if Left(sProductID, 3) = "123" then MsgBox "PID has been validated. Thank you for using MyOffice.", vbOK + vbInformation, "PID validated" Session.Property("PIDIsOK") = "1" else MsgBox "Sorry, the PID you entered is invalid. Please try again.", _ vbOK + vbCritical, "Incorrect PID" Session.Property("PIDIsOK") = "0" end if End Sub MSI effektiv einsetzen

  33. Demo Eine Custom Actionmit InstallShield implementieren MSI effektiv einsetzen

  34. Links und Ressourcen 1 • Windows Installer SDK 1.2 Downloadhttp://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/457/msdncompositedoc.xml • Windows Installer SDK 1.5 (= 2.0)Beta Download http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/MSDN-FILES/027/001/530/msdncompositedoc.xml MSI effektiv einsetzen

  35. Links und Ressourcen 2 • D42473 Überblick über die Windows Installer-Technologie   http://www.microsoft.com/IntlKB/Germany/Support/kb/D42/D42473.HTM • Visual Studio Installer Guided Tourhttp://msdn.microsoft.com/vstudio/downloads/vsi11/tour.asp MSI effektiv einsetzen

  36. Links und Ressourcen 3 • “Am Anfang war die Installation”Christoph Haltiner, BasicPro 5/2000 • "VB/VBA Developer's Guide to the Windows Installer" by Mike Gunderloy; Sybex (ISBN: 0782127452) MSI effektiv einsetzen

  37. Uff... Fragen!? MSI effektiv einsetzen

More Related