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

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag Code-Dokumentation
Advertisements

Developing your Business to Success We are looking for business partners. Enterprise Content Management with OS|ECM Version 6.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Matt Davis Technology Specialist
Upgrade und Migration zu SQL Server 2005
ASP.NET Tips & Tricks Uwe Baumann
Daten fließen lassen XML in Microsoft Office 2003 Lorenz Goebel Frank Fischer
Web-Entwicklung mit ASP.NET 2.0 und Visual Studio 2005 Uwe Baumann Marketing Manager Developer Tools Microsoft Deutschland GmbH Oliver Scheer Developer.
Office XP und XML Web Services Dariusz Parys.NET Strategy & Developer Group
Windows Installer Visual Studio Installer
Deployment und Versioning von .NET Applikationen
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
SPS / WSS Entwicklung Martin Saternus Technical Student Consultant Microsoft Deutschland GmbH
ASP.NET Episode 2 Uwe Baumann Technologieberater Microsoft Deutschland GmbH weblogs.asp.net/uweinside.
Systemverwaltung wie es Ihnen gefällt.
Softwareverteilung.
Web 2.0 und RIAs - Adobe Air1 Seminar: Web 2.0 und Rich Internet Applications Wintersemester 2007/2008 Daniel Thaidigsmann
Zusammenfassung & Fazit
Proaktives CONTRL Handling mit B2B by Practice
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Professionelles Projektmanagement In der Praxis
Inhalte und Maßnahmen eingegeben haben,
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Uwe Habermann Venelina Jordanova VFP Code in Silverlight Anwendungen ausführen.
WebCast: Managed Smart Tags mit VSTO Jens Häupel.NET Technologieberater Microsoft Deutschland GmbH
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Presenter: Daniel Walzenbach Technologieberater
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
Selbsttest zum Modul 2 Informationstechnik
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
SQL Server 2005 CLR-Integration
Präsentation von Sonja Pathe
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure Windows Azure Mobile Services.
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Sichern und Retten bei Arbeiten in Höhen und Tiefen
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
Template v5 October 12, Copyright © Infor. All Rights Reserved.
Microsoft Student Partners
Uwe Habermann Venelina Jordanova VFX in Cloud.
Office Business Anwendungen mit SharePoint Fabian Moritz | MVP Office SharePoint Server.
Digital Dashboard Toolkit 2001 SharePoint Portal Server released targeting portal market SharePoint Team Services (STS) released as free add-
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Office in Java 2. Info-Point Urs Frei.
Analyseprodukte numerischer Modelle
MTS Microsoft Transaction Server Martin Basziszta
Warum IIS? Best of Microsoft Webserver
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Zero Administration Kit für Microsoft® Windows® Jörg Kramer University Support Center.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Musterlösung IT-Struktur an Schulen © Zentrale Planungsgruppe Netze am Kultusministerium Baden-Württemberg Software-Verteilung mit ZENworks 4 Regionale.
Sprachneuerungen des .NET Frameworks 3.5
Exploiting Web Applications
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
© Copyright INFORM GmbH Seminarvortrag im Studiengang Scientific Programming von Nicole Küpper am Analyse des Updatevorgangs und Auswahl.
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
Workshop 1 Getting Started 2016 Boris Wylutzki
Erweiterte Azure Dienste
 Präsentation transkript:

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

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

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

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

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

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)

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

MSI effektiv einsetzen 14 Demo Einblick in ein MSI-File Tool Orca 1.2: le.asp?url=/MSDN-FILES/027/001/530/msdncompositedoc.xml

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

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") 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 msiInstaller.ReinstallProduct MYTEXT_PRODUCTCODE_GUID, _ msiReinstallModeFileOlderVersion Or msiReinstallModeShortcut

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

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

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 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 Action mit InstallShield implementieren

MSI effektiv einsetzen 34 Links und Ressourcen 1 Windows Installer SDK 1.2 Download files/027/001/457/msdncompositedoc.xml files/027/001/457/msdncompositedoc.xml Windows Installer SDK 1.5 (= 2.0) Beta Download FILES/027/001/530/msdncompositedoc.xml FILES/027/001/530/msdncompositedoc.xml

MSI effektiv einsetzen 35 Links und Ressourcen 2 D42473 Überblick über die Windows Installer- Technologie pport/kb/D42/D42473.HTM pport/kb/D42/D42473.HTM Visual Studio Installer Guided Tour s/vsi11/tour.asp s/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: )

MSI effektiv einsetzen 37 Fragen!? Uff...