uwe baumann developer group microsoft gmbh email: [email protected] windows installer - effektiv...
TRANSCRIPT
![Page 1: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/1.jpg)
Uwe BaumannDeveloper GroupMicrosoft GmbH
Email: [email protected]
Windows Installer - effektiv einsetzenWindows Installer - effektiv einsetzen
Professionelle Setup-Features in eigenen Projekten realisieren
![Page 2: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/2.jpg)
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
![Page 3: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/3.jpg)
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
![Page 4: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/4.jpg)
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
![Page 5: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/5.jpg)
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
![Page 6: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/6.jpg)
MSI effektiv einsetzen 6
Demo
Ein Setup mit IQ!Ein Setup mit IQ!
![Page 7: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/7.jpg)
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
![Page 8: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/8.jpg)
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
![Page 9: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/9.jpg)
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;
![Page 10: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/10.jpg)
MSI effektiv einsetzen 10
Datenbasiertes Setup
wacht über das System protokolliert die Installationen macht Setup zur Transaktion kann mit Admin-Rechten arbeiten
Rezept
Rezept
![Page 11: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/11.jpg)
MSI effektiv einsetzen 11
MSI Architektur
MSI PaketeMSI Pakete
FilesystemFilesystem RegistryRegistry
ApplikationenApplikationen
Management Management Tool (z.B. SMS)Tool (z.B. SMS)
Active directoryActive directory
Windows Installer APIWindows Installer API
Windows Installer Windows Installer serviceservice
KonfigurationsdatenKonfigurationsdaten Was ist wie auf dieser Maschine Was ist wie auf dieser Maschine
installiert?installiert?
Installations-Service im Installations-Service im SystemSystem Service unter Windows NTService unter Windows NT Führt den Setupvorgang durchFührt den Setupvorgang durch
APIAPI Installiert und konfiguriert Installiert und konfiguriert
Programme und FeaturesProgramme und Features StatusabfrageStatusabfrage Pakete erstellenPakete erstellen
PaketPaket Beschreibt den SollzustandBeschreibt den Sollzustand
Konfigurations-Konfigurations-datendaten
![Page 12: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/12.jpg)
MSI effektiv einsetzen 12
Komponenten und Features
Component 1Component 1(WordCore)(WordCore)
Component 3Component 3(ExcelCore)(ExcelCore)
Component 2Component 2(MS Speller)(MS Speller)
ProductProduct(Office)(Office)
Feature 2Feature 2(Excel)(Excel)
Feature 1Feature 1(Word)(Word)
Entry pointEntry point(.doc)(.doc)
Entry pointEntry point(Shortcut)(Shortcut)
Entry pointEntry point(.xls)(.xls)
Entry pointEntry point(Shortcut)(Shortcut)
Entry pointEntry point(CLSID)(CLSID)
ResourceResource(Registry key)(Registry key)
ResourceResource(winword.exe)(winword.exe)
ResourceResource(Registry key)(Registry key)
ResourceResource(excel.exe)(excel.exe)
ResourceResource(Registry key)(Registry key)
ResourceResource(Mssp.dll)(Mssp.dll)
Feature 3Feature 3(Word Speller)(Word Speller)
Feature 4Feature 4(Excel Speller)(Excel Speller)
![Page 13: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/13.jpg)
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
![Page 14: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/14.jpg)
MSI effektiv einsetzen 14
Demo
Einblick in ein MSI-FileEinblick 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
![Page 15: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/15.jpg)
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
![Page 16: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/16.jpg)
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
![Page 17: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/17.jpg)
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
![Page 18: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/18.jpg)
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
![Page 19: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/19.jpg)
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
![Page 20: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/20.jpg)
MSI effektiv einsetzen 20
„Update by Reinstall“ 3
Implementierung:
MSIEXEC /fvomus Version2.msiMSIEXEC /fvomus Version2.msi
![Page 21: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/21.jpg)
MSI effektiv einsetzen 21
Demo
„Update by Reinstall“„Update by Reinstall“
![Page 22: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/22.jpg)
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
![Page 23: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/23.jpg)
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
![Page 24: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/24.jpg)
MSI effektiv einsetzen 24
Erkennen und Reparieren 1
Szenario: Die Applikation soll sich selbst per
Menübefehl reparieren können („Erkennen und Reparieren“)
![Page 25: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/25.jpg)
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")
![Page 26: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/26.jpg)
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
![Page 27: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/27.jpg)
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
![Page 28: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/28.jpg)
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
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
![Page 29: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/29.jpg)
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
![Page 30: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/30.jpg)
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
![Page 31: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/31.jpg)
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)
![Page 32: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/32.jpg)
MSI effektiv einsetzen 32
Custom Actions 2
Implementierung:
Sub CheckPID()
'Get the Product IDsProductID = Session.Property("PIDKEY")
'Check if PID is OKif Left(sProductID, 3) = "123" then
MsgBox "PID has been validated. Thank you for using MyOffice.", vbOK + vbInformation, "PID validated"Session.Property("PIDIsOK") = "1"
elseMsgBox "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 IDsProductID = Session.Property("PIDKEY")
'Check if PID is OKif Left(sProductID, 3) = "123" then
MsgBox "PID has been validated. Thank you for using MyOffice.", vbOK + vbInformation, "PID validated"Session.Property("PIDIsOK") = "1"
elseMsgBox "Sorry, the PID you entered is invalid. Please try again.", _vbOK + vbCritical, "Incorrect PID"Session.Property("PIDIsOK") = "0"
end if
End Sub
![Page 33: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/33.jpg)
MSI effektiv einsetzen 33
Demo
Eine Custom Actionmit InstallShield implementieren
Eine Custom Actionmit InstallShield implementieren
![Page 34: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/34.jpg)
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
![Page 35: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/35.jpg)
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
![Page 36: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/36.jpg)
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)
![Page 37: Uwe Baumann Developer Group Microsoft GmbH Email: uwebaum@microsoft.com Windows Installer - effektiv einsetzen Professionelle Setup-Features in eigenen](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6249795902118b728e/html5/thumbnails/37.jpg)
MSI effektiv einsetzen 37
Fragen!?
Uff...Uff...