Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Uwe Baumann Developer Group Microsoft GmbH Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen.

Ähnliche Präsentationen


Präsentation zum Thema: "Uwe Baumann Developer Group Microsoft GmbH Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen."—  Präsentation transkript:

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

2 MSI effektiv einsetzen 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

3 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

4 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

5 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

6 MSI effektiv einsetzen 6 Demo Ein Setup mit IQ!

7 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

8 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

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

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

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

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

13 MSI effektiv einsetzen 13 Die MSI Datenbank Features Components Shortcuts Action Files CAB (Optional) Summary Information Andere Tabellen... Verweise auf zu installierende Files 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

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

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

16 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

17 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

18 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

19 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

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

21 MSI effektiv einsetzen 21 Demo Update by Reinstall

22 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

23 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

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

25 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") Dim msiInstaller As WindowsInstaller.Installer Set msiInstaller = CreateObject("WindowsInstaller.Installer")

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

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

28 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 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

29 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

30 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

31 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)

32 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 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

33 MSI effektiv einsetzen 33 Demo Eine Custom Action mit InstallShield implementieren

34 MSI effektiv einsetzen 34 Links und Ressourcen 1 Windows Installer SDK 1.2 Download http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn- files/027/001/457/msdncompositedoc.xml http://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 http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/MSDN- FILES/027/001/530/msdncompositedoc.xml

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

36 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)

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


Herunterladen ppt "Uwe Baumann Developer Group Microsoft GmbH Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen."

Ähnliche Präsentationen


Google-Anzeigen