Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Tederich Weisheit Geändert vor über 10 Jahren
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...
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.