Bewährte Methoden für Windows Installer

In diesem Abschnitt wird eine Liste der Tipps aufgelistet, die mit der Standard-Dokumentation für Windows Installer SDK verknüpft sind, um Anwendungsentwicklern, Setup-Autoren, IT-Experten und Infrastrukturentwicklern zu helfen, bewährte Methoden für die Verwendung von Windows Installer zu finden:

Aktualisieren Sie die Windows Installer-Version.

  • Verwenden Sie Windows Installer 5.0 unter Windows Server 2008 R2 und Windows 7. Dies ist die Windows Installer-Version, die mit dem Betriebssystem bereitgestellt wird.
  • Verwenden Sie Windows Installer 4.5 unter Windows Server 2008, Windows Server 2003 mit Service Pack 1 (SP1), Windows Vista mit Service Pack 1 (SP1) oder Windows XP mit Service Pack 2 (SP2). Informationen zum Abrufen der neuesten Windows Installer-Version finden Sie unter Windows Installer weitervertreibbare Komponenten.
  • Verwenden Sie Windows Installer 3.1 unter Windows 2000 mit Service Pack 3 (SP3). Windows Installer Version 3.1 verfügt über Features, die einen besseren Anwendungsdienst und Patching von Anwendungen erleichtern.
  • Viele wichtige Features wurden mit Version 3.0 eingeführt und sind im Abschnitt Nicht unterstützt in Windows Installer Version 2.0 aufgeführt. Installationspakete und Updates, die für Windows Installer 2.0 erstellt wurden, können mit Windows Installer 3.0 und höher installiert werden. Patch-Pakete, die die neuen Tabellen enthalten, die von Windows Installer 3.0 verwendet werden, können weiterhin mit früheren Versionen von Windows Installer angewendet werden, jedoch ohne die Patchfunktion von Windows Installer 3.0. Es ist auch möglich, Patches zu erstellen, die explizit Windows Installer 3.0 erfordern, die nicht von früheren Versionen von Windows Installer angewendet werden können. Wenn ein Benutzer die Installationsprogrammversion nicht aktualisieren kann, stellen Sie sicher, dass Ihre Anwendung oder Ihr Update mit einem zukünftigen Update des Windows Installer kompatibel ist.
  • Eine Liste der Windows Installer-Features, die von früheren Versionen des Windows Installer nicht unterstützt werden, finden Sie unter Neuigkeiten in Windows Installer.

Erfüllen Sie die Windows-Logo-Zertifizierungsanforderungen.

  • Auch wenn Sie nicht beabsichtigen, Ihre Anwendung an das Logoprogramm zu übermitteln, können Sie nach den Logozertifizierungsrichtlinien ihr Windows Installer-Paket verbessern. Eine Übersicht über die Logoanforderungen und Links zu bestimmten Logo-Zertifizierungsprogrammen finden Sie unter Windows Installer- und Logoanforderungen.

Bereiten Sie das Paket für die Lokalisierung vor.

  • Es empfiehlt sich, sich bei der Erstellung des ursprünglichen Installationspakets auf eine zukünftige Lokalisierung vorzubereiten. Sie können dem vorgeschlagenen Paket-Lokalisierungsverfahren beim Lokalisieren eines Windows Installer-Pakets folgen.

Aktualisieren Sie Ihre Windows Installer-Entwicklungstools und -Dokumentation.

  • Die Windows Installer-Entwicklungstools sind nicht weiterverteilbar, und Sie sollten nur die von Microsoft verfügbaren Versionen dieser Tools verwenden. Diese sind in den Windows SDK-Komponenten für Windows Installer-Entwickler im Microsoft Windows Software Development Kit (SDK) verfügbar.
  • Mehrere unabhängige Softwareanbieter bieten Tools zum Erstellen oder Ändern von Windows Installer-Paketen. Diese Tools können eine Paketerstellungsumgebung bereitstellen, die möglicherweise einfacher zu verwenden ist als die im Windows Installer SDK bereitgestellten Tools. Weitere Informationen zu diesen Tools finden Sie in den Informationsressourcen, die in anderen Quellen von Windows Installer-Informationen erläutert werden.
  • Die Möglichkeit zum Erstellen eines Pakets aus Textdateien ist für einige Entwickler möglicherweise intuitiver. Mit dem WiX (Windows Installer XML)-Toolset, verfügbar auf Sourceforge.net werden Windows-Installationspakete aus XML-Quellcode erstellt.
  • Die Dokumentation im Windows Installer SDK, die in der MSDN Online Bibliothek veröffentlicht wurde, wird am häufigsten aktualisiert.
  • Verwenden Sie die aktuelle Version von Msizap.exe (Version 3.1.4000.2726 oder höher), die in den Windows SDK-Komponenten für Windows Installer-Entwickler für Windows Vista oder höher verfügbar ist. Geringere Versionen von Msizap.exe können Informationen zu allen Updates entfernen, die auf andere Anwendungen auf dem Computer des Benutzers angewendet wurden. Wenn diese Informationen entfernt werden, müssen diese anderen Anwendungen möglicherweise entfernt und neu installiert werden, um zusätzliche Updates zu erhalten.
  • Der Datenbanktabellen-Editor Orca.exe ist ein Datenbanktabellen-Editor zum Erstellen und Bearbeiten von Windows Installer-Paketen und Mergemodulen. Er verfügt über eine einfache GUI-Schnittstelle, unterstützt jedoch die erweiterte Bearbeitung von Windows Installer-Datenbanken. Auch wenn Sie eine andere Anwendung als primäres Entwicklungstool verwenden, können Sie feststellen, dass die Verwendung von Orca.exe bei der Problembehandlung und beim Testen eines Pakets praktisch ist.
  • Weitere Quellen von Windows Installer-Informationen zu aktuellen Windows Installer-Informationen finden Sie in Blogs, technischen Chats, Newsgroups, technischen Artikeln und Websites.

Wenn Sie sich entschließen, eine Vorversion-Setup-Anwendung neu zu paketieren, befolgen Sie bewährte Methoden zum neu paketieren.

Viele Anwendungsanbieter stellen systemeigene Windows Installer-Pakete für die Installation oder ihre Produkte bereit. Software, die eine vorhandene Vorversion-Setupanwendung in ein Windows Installer-Paket konvertiert, wird als Tool zur Neupaketierung bezeichnet. Das neu paketieren einer vorhandenen Setupanwendung ist nicht die bewährte Entwicklung. Anwendungen, die von Anfang an entwickelt wurden, um die Vorteile von Windows Installer-Features zu nutzen, können für Benutzer einfacher installiert und gewartet werden. Wenn Sie sich für die Verwendung einer Software zur Neu-Paketierung entscheiden, können Sie mithilfe der folgenden Methoden ein besseres Windows Installer-Paket erstellen.

  • Tools zur Neu-Paketierung konvertieren Vorversion-Installationen in ein Windows Installer-Paket, indem sie ein Bild eines Staging-Systems vor und nach der Installation erstellen. Alle Registrierungsänderungen, Dateiänderungen oder Systemeinstellungen, die während des Erfassungsprozesses auftreten, sind in der Installation enthalten. Konfigurieren Sie die Hardware und Software des Computers, mit dem die Installation so nah wie möglich an das System des vorgesehenen Benutzers umgepackt wird. Erstellen Sie ein separates Paket für jede unterschiedliche Hardwarekonfiguration. Neu-Paketierung mithilfe eines sauber Staging-Computers. Entfernen Sie alle nicht benötigten Anwendungen. Beenden Sie alle unnötigen Prozesse. Schließen Sie alle nicht wesentlichen Systemdienste.
  • Erstellen Sie immer eine Kopie der ursprünglichen Installation, bevor Sie damit beginnen, daran zu arbeiten. Arbeiten Sie immer an der Kopie. Beenden Sie niemals eine Neu-Paketierung, bevor sie die Erstellung des Pakets abgeschlossen hat. Wenn die Neu-Paketierung das Paket beschädigt, haben Sie noch das Original.
  • Packen Sie keine Microsoft-Softwareupdates in ein Windows Installer-Paket um. Microsoft veröffentlicht Softwareupdates, z. B. Service Packs, als selbst extrahierende Dateien, die automatisch die Installation ausführen. Diese Updates verwenden unterschiedliche Installationsprogramme als Windows Installer, um geschützte Windows-Ressourcen zu ersetzen und können nicht in ein Windows Installer-Paket konvertiert werden. Informationen zum Bereitstellen von Windows Service Packs finden Sie im Service Pack-Bereitstellungshandbuch auf Microsoft TechNet.
  • Verwenden Sie kein Tool zur Neu-Paketierung, um ein Windows Installer-Paket in ein neues Paket zu konvertieren. Der Windows Installer fügt dem System Konfigurationsinformationen sowie Anwendungsressourcen hinzu. Wenn ein Toll zur Neu-Paketierung das System vor und nach der Installation vergleicht, interpretiert die Neu-Paketierung die Konfigurationsinformationen als Teil der Anwendung falsch. Dies beschädigt in der Regel die neu paketierte Anwendung. Verwenden Sie stattdessen Anpassungstransformationen, um ein vorhandenes Windows Installer-Paket zu ändern oder ein neues Paket zu erstellen. Mithilfe des Tools Msitran.exe können Sie Anpassungstransformationen erstellen.
  • Verwenden Sie kein Tool zur Neu-Paketierung, um mehrere Windows Installer-Pakete zu einem einzigen Paket zusammenzufassen. Stattdessen können Sie das Msistuff.exe Tool verwenden, um die ausführbare Setup.exe Bootstrap zu konfigurieren, um die Pakete nacheinander zu installieren.
  • Machen Sie Ihr Windows Installer-Paket so, dass es vom Kunden problemlos angepasst werden kann. Globale Variablen, die während einer Installation vom Windows Installer verwendet werden, können mithilfe öffentlicher Eigenschaften oder Anpassungstransformationen festgelegt werden. Stellen Sie Dokumentation zur Verwendung dieser Eigenschaften und praktischen Standardwerte für alle anpassbaren Werte bereit. Weitere Informationen zum Abrufen und Einstellen der Eigenschaften finden Sie unter Verwenden von Eigenschaften. Ein Beispiel für eine Anpassungstransformation finden Sie unter Ein Beispiel für eine benutzerdefinierte Transformation.

Versuchen Sie nicht, geschützte Ressourcen zu ersetzen.

Windows Installer-Pakete sollten nicht versuchen, geschützte Ressourcen während der Installation oder dem Update zu ersetzen. Das Windows Installer entfernt oder ersetzt diese Ressourcen nicht, da Windows das Ersetzen wesentlicher Systemdateien, Ordner und Registrierungsschlüssel verhindert. Der Schutz dieser Ressourcen verhindert Anwendungs- und Betriebssystemfehler.

  • Wenn Sie unter Windows Server 2008 oder Windows Vista ausgeführt werden, überspringt Windows Installer die Installation eines Datei- oder Registrierungsschlüssels, der durch Windows Resource Protection (WRP) geschützt ist, und gibt eine Warnung in die Protokolldatei ein und fährt mit dem erneuten Standard der Installation ohne Fehler fort. Weitere Informationen finden Sie unter Verwenden von Windows Installer und Windows-Ressourcenschutz.
  • WRP ist der neue Name für Windows-Dateischutz (WFP). WRP schützt Registrierungsschlüssel und Ordner sowie wichtige Systemdateien. In Windows Server 2003, Windows XP und Windows 2000 fordert das Installationsprogramm, wenn beim Windows Installer eine WFP-geschützte Datei aufgetreten ist, die WFP-Installation der Datei an. Weitere Informationen finden Sie unter Verwenden von Windows Installer und Windows-Ressourcenschutz.

Verlassen Sie sich nicht auf nicht kritischen Ressourcen.

Ihre Installation oder Ihr Update sollte aus den folgenden Gründen nicht von der Installation nicht kritischer Ressourcen abhängen.

  • Benutzerdefinierte Aktionen können fehlschlagen, wenn sie von einer Komponente abhängig sind, die zu einem Feature gehört, das der Benutzer angibt, anstatt es zu installieren.
  • Benutzerdefinierte Aktionen, die vor der InstallFinalize-Aktion sequenziert wurden, können fehlschlagen, wenn sie von einer Komponente abhängen, die eine Assembly enthält, die installiert wird. Der Windows Installer übernimmt erst Assemblies für die globale Assemblycache (Global Assembly Cache, GAC), bis die InstallFinalize-Aktion abgeschlossen ist.

Verwenden Sie die API, um Windows Installer-Konfigurationsinformationen abzurufen.

Die Installation Ihrer Anwendung oder Ihres Updates sollte nicht vom direkten Zugriff auf Windows Installer-Konfigurationsinformationen abhängen, die auf Ihrem Computer gespeichert sind. Verwenden Sie stattdessen die Anwendungsprogrammierschnittstelle von Windows Installer, um Konfigurationsinformationen abzurufen. Der Speicherort und das Format von Konfigurationsinformationen werden vom Windows Installer-Dienst verwaltet und können sich ändern.

Organisieren Sie die Installation Ihrer Anwendung um Komponenten.

Der Windows Installer-Dienst installiert oder entfernt Sammlungen von Ressourcen, die als Komponenten bezeichnet werden. Da Komponenten häufig freigegeben sind, muss der Autor eines Installationspakets Regeln befolgen, wenn die Komponenten eines Features oder einer Anwendung angegeben werden.

  • Beachten Sie die Komponentenregeln beim Organisieren von Anwendungen in Komponenten, um sicherzustellen, dass neue Komponenten oder neue Versionen von Komponenten installiert und entfernt werden können, ohne andere Anwendungen zu beschädigen. Sie können das unter Definieren von Komponenten des Installationsprogrammsbeschriebene Verfahren ausführen.
  • Das Installationsprogramm verfolgt jede Komponente nach der entsprechenden Komponenten-ID-GUID, die in der Tabelle der Komponenten angegeben ist. Für den Betrieb des Windows Installer-Referenzzählmechanismus ist es wichtig, dass die GUID der Komponenten-ID korrekt ist. Befolgen Sie die Richtlinien zum Ändern des Komponenten-Codes.
  • Wenn Ihr Paket die Komponentenregeln brechen muss, beachten Sie die möglichen Folgen, und stellen Sie sicher, dass Ihre Installation diese Komponenten niemals installiert, wo sie Komponenten im System des Benutzers beschädigen können. Weitere Informationen finden Sie unter Was geschieht, wenn die Komponentenregeln gebrochen werden?.
  • Beachten Sie, wie Windows Installer die Dateiversionsverwaltungsregeln beim Ersetzen vorhandener Dateien anwendet. Der Windows Installer bestimmt zuerst, ob die Schlüsseldatei der Komponente bereits installiert ist, bevor Sie versuchen, eine der Dateien der Komponente zu installieren. Wenn das Installationsprogramm eine Datei mit demselben Namen wie die Schlüsseldatei der Komponente findet, die am Zielspeicherort installiert ist, vergleicht es die Version, das Datum und die Sprache der beiden Schlüsseldateien und verwendet Dateiversionsregeln, um zu bestimmen, ob die vom Paket bereitgestellte Komponente installiert werden soll. Wenn das Installationsprogramm bestimmt, dass die Komponentenbasis auf der Schlüsseldatei ersetzt werden muss, werden die Dateiversionsverwaltungsregeln für jede installierte Datei verwendet, um zu bestimmen, ob die Datei ersetzt werden soll.

Reduzieren Sie die Größe von großen Windows-Installationspaketen.

Sehr große Windows-Pakete benötigen Systemressourcen und können für Benutzer schwierig zu installieren sein. Es empfiehlt sich, die Größe von sehr großen Windows Installer-Paketen durch die folgenden Methoden zu verringern.

  • Komprimieren Sie die Dateien in der Installation, und speichern Sie sie in einer Cab-Datei (.cab). Das Installationsprogramm ermöglicht es, die .cab Datei als separate externe Datei oder als Datenstrom im MSI-Paket selbst zu speichern. Weitere Informationen finden Sie unter Verwenden von Cabs und komprimierten Quellen.
  • Entfernen Sie verschwendeten Speicherplatz in der .msi Datei, indem Sie eine der Optionen verwenden, die unter Verringern der Größe einer .msi Datei erläutert werden.
  • Wenn Ihr Windows Installer-Paket mehr als 32767 Dateien enthält, müssen Sie das Schema der Datenbank ändern. Weitere Informationen finden Sie unter Erstellung eines großen Pakets.

Wenn Sie benutzerdefinierte Aktionen verwenden, befolgen Sie bewährte Methoden für benutzerdefinierte Aktionen.

Windows Installer verfügt über viele integrierte Standardaktionen für die Installation und Wartung von Anwendungen. Entwickler sollten versuchen, sich auf die Standardaktionen so weit wie praktisch zu verlassen, anstatt eigene benutzerdefinierte Aktionen zu erstellen. Es gibt jedoch Situationen, in denen der Entwickler eines Installationspakets feststellt, dass eine benutzerdefinierte Aktion geschrieben werden muss.

Wenn Sie Assemblies verwenden, befolgen Sie bewährte Assembly-Methoden

Wenn Ihr Paket Software-Assemblies verwendet, befolgen Sie die Richtlinien zum Hinzufügen von Assemblies zu einem Paket, Aktualisieren von Assemblies sowie Installieren und Entfernen von Assemblies.

Keine gleichzeitigen Installationen versenden.

Gleichzeitige Installationen, auch als geschachtelte Installationen bezeichnet, installieren während einer derzeit ausgeführten Installation ein weiteres Windows Installer-Paket. Die Verwendung gleichzeitiger Installationen ist keine bewährte Methode, da sie für Kunden schwierig zu bedienen sind. Patchen und Upgrade funktionieren möglicherweise nicht mit gleichzeitigen Installationen. Die empfohlene Alternative zur Verwendung gleichzeitiger Installationen besteht darin, stattdessen eine Setup-Anwendung und einen externen UI-Handler zu verwenden, um mehrere Windows Installer-Pakete sequenziell zu installieren.

Weitere Informationen zur Verwendung eines externen UI-Handlers finden Sie unter Überwachen einer Installation mithilfe von MsiSetExternalUI. Weitere Informationen zur Verwendung eines datensatzbasierten externen Handlers finden Sie unter Überwachen einer Installation mit MsiSetExternalUIRecord.

Gleichzeitige Installationen werden manchmal in kontrollierten Unternehmensumgebungen verwendet, um Anwendungen zu installieren, die nicht für die Öffentlichkeit vorgesehen sind. Befolgen Sie diese Richtlinien, wenn Sie sich für die Verwendung gleichzeitiger Installationen entscheiden.

  • Verwenden Sie keine gleichzeitigen Installationen, um ein Versandprodukt zu installieren oder zu aktualisieren.
  • Gleichzeitige Installationen sollten keine Komponenten freigeben.
  • Eine Administrative Installation sollte keine gleichzeitige Installation enthalten.
  • Integrierte ProgressBars sollten nicht mit gleichzeitigen Installationen verwendet werden.
  • Ressourcen, die angekündigt werden sollen, sollten nicht durch eine gleichzeitige Installation installiert werden.
  • Ein Paket, das eine gleichzeitige Installation einer Anwendung ausführt, sollte auch die gleichzeitige Anwendung deinstallieren, wenn das übergeordnete Produkt deinstalliert wird. Eine geschachtelte Installation ist im Kontext des übergeordneten Produkts in Programm hinzufügen/entfernen in Systemsteuerung vorhanden.

Halten Sie Paketnamen und Paketcodes konsistent.

Die .msi Datei kann jedem Namen zugewiesen werden, der Benutzern hilft, das Paket zu identifizieren, aber der Name sollte nicht geändert werden, ohne auch den Produktcode zu ändern.

  • Geben Sie Ihrer .msi Datei einen benutzerfreundlichen Namen, mit dem der Benutzer den Inhalt des Windows Installer-Pakets identifizieren kann.
  • Der Produktcode ist die Hauptidentifikation einer Anwendung und muss sich ändern, wenn ein umfassendes Update der Anwendung erfolgt. Weitere Informationen finden Sie unter ProductCode und Ändern des Produkt- Codes. Das Ändern des Namens der .msi Datei der Anwendung wird als umfassende Änderung betrachtet und erfordert immer eine entsprechende Änderung des Produktcodes, um die Konsistenz zu gewährleisten.
  • Der Paketcode ist der primäre Bezeichner, der vom Installationsprogramm zum Suchen und Validieren des richtigen Pakets für eine bestimmte Installation verwendet wird. Es sollten nie zwei nicht identische .msi Dateien denselben Paketcode aufweisen. Wenn ein Paket geändert wird, ohne den Paketcode zu ändern, verwendet das Installationsprogramm möglicherweise nicht das neuere Paket, wenn beide weiterhin auf das Installationsprogramm zugreifen können. Der Paketcode wird in der Revisionsnummer-Zusammenfassung-Eigenschaft des Zusammenfassungs-Informationsdatenstroms gespeichert.
  • Beachten Sie, dass Buchstaben in Produktcode- und Paketcode-GUIDs groß geschrieben sein müssen.

Verwenden Sie keine SelfReg- und TypeLib-Tabellen.

  • Autoren von Installationspaketen werden dringend davon abgeraten, die Selbstregistrierung und die SelfReg-Tabelle zu verwenden. Stattdessen sollten sie Module registrieren, indem sie eine oder mehrere Tabellen in der Gruppe Registrierungstabellen erstellen. Viele der Vorteile von Windows Installer gehen bei der Selbstregistrierung verloren, da Selbstregistrierungsroutinen dazu neigen, wichtige Konfigurationsinformationen auszublenden. Eine Liste der Gründe für die Vermeidung der Selbstregistrierung finden Sie in Tabelle SelfReg.
  • Autoren von Installationspaketen werden dringend davon abgeraten, die TypeLib-Tabelle zu verwenden. Anstatt die TypeLib-Tabelle zu verwenden, registrieren Sie Typbibliotheken mithilfe der Registrierungstabelle. Wenn bei einer Installation mit der TypeLib-Tabelle ein Fehler auftritt und eine Zurücksetzung ausgeführt werden muss, stellt die Zurücksetzung den Computer möglicherweise nicht in denselben Zustand wie vor der Zurücksetzung wieder her.

Geben Sie die Option zum Installieren ohne Benutzeroberfläche an.

Administratoren bevorzugen häufig die Bereitstellung von Anwendungen in einem Unternehmen, ohne dass eine Benutzerinteraktion erforderlich ist. Es empfiehlt sich, Ihre Anwendung zu aktivieren, um die Möglichkeit zu bieten, mit der Benutzeroberflächenebene Keine installiert zu werden.

  • Weitere Informationen zur Konfiguration finden Sie unter Öffentliche Eigenschaften. Administratoren können diese Informationen über die Befehlszeile bereitstellen.
  • Erfordern Sie nicht, dass die Installation von Informationen abhängig ist, die von der Benutzerinteraktion mit Dialogfeldern gesammelt wurden. Diese Informationen sind während einer automatischen Installation nicht verfügbar.
  • Starten Sie den Computer des Benutzers während einer automatischen Installation nicht automatisch neu.
  • Administratoren können die Benutzeroberflächenebene bei der Installation mithilfe der Befehlszeilenoption „/q“ festlegen. Die Benutzeroberflächenebene kann auch programmgesteuert mit einem Aufruf von MsiSetInternalUI festgelegt werden.

Vermeiden Sie die Verwendung der AlwaysInstallElevated-Richtlinie.

Wenn die AlwaysInstallElevated-Richtlinie nicht festgelegt ist, werden Anwendungen, die nicht vom Administrator verteilt werden, mithilfe der Rechte des Benutzers installiert, und nur verwaltete Anwendungen erhalten erhöhte Rechte. Wenn Sie diese Richtlinie festlegen, wird Windows Installer aufgefordert, Systemberechtigungen zu verwenden, wenn sie die Anwendung auf dem System installiert. Diese Methode kann einen Computer mit einem Sicherheitsrisiko öffnen, da ein Nicht-Administrator-Benutzer Installationen mit erhöhten Rechten ausführen und auf sichere Speicherorte auf dem Computer zugreifen kann. Es empfiehlt sich, eine andere Methode als die AlwaysInstallElevated-Richtlinie zu verwenden, wenn Sie ein Paket mit erhöhten Rechten für einen Nicht-Administrator - oder Patchen von verwalteten Anwendungen pro Benutzer installieren.

Aktivieren Sie die DisableMedia-Richtlinie, um nicht autorisierte Installationen einzuschränken.

Die DisableMedia-Richtlinie kann die nicht autorisierte Installation von Anwendungen verhindern. Wenn diese Richtlinie aktiviert ist, werden Benutzer und Administratoren, die eine Wartungs-Installation eines Produkts ausführen, daran gehindert, das Dialogfeld Durchsuchen zu verwenden, um Medienquellen wie z. B. CD-ROM für die Quellen anderer installierbarer Produkte zu durchsuchen. Das Suchen nach anderen Produkten wird unabhängig davon verhindert, ob die Installation mit erhöhten Rechten erfolgt. Es ist weiterhin möglich, dass der Benutzer das Produkt von Medien neu installieren kann, wenn der Benutzer über eine ordnungsgemäß bezeichnete Medienquelle verfügt.

Sorgen Sie dafür, dass die ursprünglichen Paketquelldateien sicher und für Benutzer verfügbar sind.

In einigen Fällen ist möglicherweise die ursprüngliche Quelle des Windows Installer-Pakets erforderlich, um eine Anwendung bei Bedarf zu installieren, zu reparieren oder zu aktualisieren. Wenn das Installationsprogramm keine verfügbare Quelle finden kann, wird der Benutzer aufgefordert, Medien bereitzustellen oder zu einem Netzwerkspeicherort zu wechseln, der die erforderlichen Quellen enthält. Es empfiehlt sich, sicherzustellen, dass das Installationsprogramm über die benötigten Quellen verfügt, ohne den Benutzer auffordern zu müssen.

  • Verwenden Sie digitale Signaturen und externe Cab-Dateien , um sicherzustellen, dass die vom Installationsprogramm verwendeten ursprünglichen Quellen sicher sind. Ein nicht komprimiertes Quellimage, das an einem öffentlichen Speicherort gespeichert ist, ist nicht sicher.
  • Fügen Sie eine vollständige Liste der Netzwerk- oder URL-Quellpfade in das Installationspaket der Anwendung in die SOURCELIST-Eigenschaft ein.
  • Verwenden Sie eine verteiltes Dateisystem-Freigabe (DFS) für den Quellpfad.
  • Verwenden Sie die Windows Installer-API, um Quelllisteninformationen für Windows Installer-Anwendungen und -Patches abzurufen und zu ändern. Informationen finden Sie unter Verwalten von Installationsquellen.
  • Verwenden Sie die Methoden und Eigenschaften des Installer-Objekts, des Produktobjekts und des Patch-Objekts, um Quelllisteninformationen für Windows Installer-Anwendungen und -Patches abzurufen und zu ändern.
  • Um jedoch die Wahrscheinlichkeit zu minimieren, dass Ihr Patch Zugriff auf die ursprüngliche Quelle benötigt, sollten Sie die Punkte im folgenden Abschnitt beachten: So verhindern Sie, dass ein Patch Zugriff auf die ursprüngliche Installationsquelle erfordert.
  • Speichern Sie die Paketquelldateien an einem Speicherort, der nicht der temporäre Ordner des Systems ist. Windows Installer-Quelldateien, die im temporären Ordner gespeichert sind, können Benutzern nicht mehr zur Verfügung stehen.

Aktivieren Sie die ausführliche Protokollierung auf dem Computer des Benutzers bei der Problembehandlung der Bereitstellung.

Die Windows Installer-Protokollierung enthält eine ausführliche Protokollierungsoption, die auf dem Computer eines Benutzers aktiviert werden kann. Die Informationen in einem ausführlichen Protokoll können hilfreich sein, wenn Sie versuchen, die Bereitstellung von Windows Installer-Paketen zu beheben.

  • Sie können ausführliche Protokollierung auf dem Computer des Benutzers aktivieren, indem Sie Befehlszeilenoptionen, die MsiLogging-Eigenschaft, die Protokollierungsrichtlinie, MsiEnableLog undEnableLog-Methode verwenden.
  • Eine sehr nützliche Ressource zum Interpretieren von Windows Installer-Protokolldateien ist Wilogutl.exe. Dieses Tool unterstützt die Analyse von Protokolldateien und zeigt vorgeschlagene Lösungen für Fehler an, die in einer Protokolldatei gefunden werden.
  • Die ausführliche Protokollierungsoption sollte nur für Problembehandlungszwecke verwendet werden und sollte nicht aktiviert werden, da sie nachteilige Auswirkungen auf die Systemleistung und den Speicherplatz haben kann. Jedes Mal, wenn Sie das Tool "Programme hinzufügen/entfernen" in Systemsteuerung verwenden, wird eine neue Datei erstellt.

Die Deinstallation lässt den Computer des Benutzers in einem sauber Zustand.

Das Entfernen von Anwendungen ist ebenso wichtig wie die Installation. Wenn ein Windows Installer-Paket deinstalliert wird, sollte es keine nutzlosen Teile von sich selbst auf dem Computer des Benutzers hinter sich lassen.

  • Wenn eine Datei, die nach dem Ausführen einer Deinstallation aus dem Computer des Benutzers entfernt werden soll Standard, kann das Installationsprogramm die Komponente, die die Datei enthält, aus einem oder mehreren der gründe, die unter Entfernen von gestrandeten Dateien beschrieben sind, nicht entfernen.
  • Wenn eine Anwendung registriert werden muss, erstellen Sie das Paket, um Registrierungsinformationen zu entfernen, wenn die Anwendung deinstalliert wird. Weitere Informationen finden Sie unter Hinzufügen oder Entfernen von Registrierungsschlüsseln bei der Installation oder Entfernung von Komponenten. Wenn eine Anwendung nicht registriert ist, wird die Anwendung nicht im Feature "Programme hinzufügen oder entfernen" in Systemsteuerung aufgeführt und kann nicht mit dem Windows Installer verwaltet werden.
  • Um eine Anwendung aus dem Feature "Programme hinzufügen oder entfernen" in Systemsteuerung auszublenden und weiterhin Windows Installer zum Verwalten der Anwendung verwenden zu können, befolgen Sie die Richtlinien, die unter Hinzufügen und Entfernen einer Anwendung und Verlassen von "Keine Ablaufverfolgung" in der Registrierung beschrieben sind.
  • Benutzerdefinierte Aktionen sollten bei der Deinstallation so bedingt oder nicht nach Bedarf ausgeführt werden. Möglicherweise müssen unterschiedliche benutzerdefinierte Aktionen beim Installieren und Deinstallieren ausgeführt werden.
  • Benutzerspezifische Anpassungsinformationen können in einer Textdatei auf dem Computer gespeichert werden. Dies hat den Vorteil, dass die Datei entfernt werden kann, wenn die Anwendung deinstalliert wird, auch wenn der Benutzer dieser Anpassung derzeit nicht angemeldet ist.

Testpakete sowohl für die Bereitstellung pro Benutzer als auch für die Installation pro Computer.

Es empfiehlt sich, Kunden zu ermöglichen, zu entscheiden, ob ein Paket für die Installation entweder im Installationskontext pro Computer oder pro Benutzer bereitgestellt werden soll.

  • Überlegen Sie, ob die Anwendung nur bestimmten Benutzern oder allen Benutzern des Computers während des Entwicklungsprozesses zur Verfügung stehen soll.
  • Testen Sie, dass das Paket sowohl für den Installationskontext pro Benutzer als auch für den Installationskontext pro Computer ordnungsgemäß funktioniert.
  • Machen Sie das Paket einfach anpassbar, und lassen Sie Kunden entscheiden, ob es pro Benutzer oder pro Computer bereitgestellt werden soll.

Planen und testen Sie eine Wartungsstrategie, bevor Sie die Anwendung versenden.

Sie sollten entscheiden, wie Sie die Anwendung zum ersten Mal bereitstellen möchten.

  • Berücksichtigen Sie die Arten von Updates, die Sie erwarten, um Ihre Anwendung in Zukunft zu bedienen. Windows Installer bietet drei Arten von Updates: Kleine Updates, Kleinere Upgrades und Hauptupgrades. Die Unterschiede zwischen diesen werden im Thema "Patching" und "Upgrades " beschrieben.
  • Testen Sie vor dem Versand Der Anwendung, ob sie nach der Wartung mit jedem Updatetyp wie erwartet funktioniert.

Verringern Sie die Abhängigkeit von Updates zu den ursprünglichen Quellen.

Wenn die ursprünglichen Quelldateien erforderlich sind, um Ihre Anwendung zu aktualisieren, kann dies die Wartung der Anwendung erschweren. Die folgenden Methoden können dazu beitragen, die Abhängigkeit von Updates nach den ursprünglichen Quellen zu verringern.

Nicht verwendbare Mergemodule verteilen.

Anwendungen sollten nicht von Zusammenführungsmodulen für die Installation der Komponente abhängen, wenn der Besitzer des Seriendruckmoduls und der Besitzer der Anwendung unterschiedlich sind. Dies kann die Wartung der Anwendung erschweren, da beide Besitzer koordinieren müssen, um die Anwendung oder das Modul zu aktualisieren. Ohne alle Anwendungen zu kennen, die das Seriendruckmodul verwendet haben, kann der Besitzer der Anwendung das Seriendruckmodul nicht aktualisieren, ohne zu riskieren, dass das Update möglicherweise nicht mit einer anderen Anwendung kompatibel ist. Der Besitzer des Seriendruckmoduls hat keine direkte Methode zum Aktualisieren von Windows Installer-Paketen, die das Seriendruckmodul bereits installiert haben.

  • Erwägen Sie die Bereitstellung der erforderlichen Komponenten für Benutzer als eine andere Windows Installer-Installation.

Vermeiden Sie das Patchen von Administrativen Installationen.

Stellen Sie in einem Netzwerk eine administrative Installation des ursprünglichen Windows Installer-Pakets Ihrer Anwendung bereit, um Mitgliedern einer Arbeitsgruppe die Installation der Anwendung zu ermöglichen. Benutzer dieses Administratorimages sollten dann Updates auf die lokale Instanz der Anwendung anwenden, die sich auf ihrem Computer befindet. Dadurch werden Benutzer mit dem Administrativen Image synchronisiert. Das Anwenden von Updates auf die Administratorinstallation wird aus den folgenden Gründen nicht empfohlen.

  • Die Größe und Latenz des Downloads, die für Benutzer erforderlich sind, um ein Update zu erhalten, wird im Vergleich zum Herunterladen eines Patches erhöht. Das gesamte aktualisierte Windows Installer-Paket und die Quelldateien müssen heruntergeladen, neu zwischengespeichert und neu installiert werden.
  • Benutzer können Anwendungen bei Bedarf nicht installieren und von einer aktualisierten Administratorinstallation reparieren, bis sie die Anwendung neu zwischenspeichern und erneut installieren.
  • Wenn Sie einen Patch auf eine Administratorinstallation anwenden, wird die digitale Signatur aus dem Paket entfernt. Ein Administrator muss das Paket neu zuweisen. Weitere Informationen zur Verwendung digitaler Signaturen finden Sie unter "Digitale Signaturen" und "Windows Installer".
  • Viele binäre Patches zielen auf das RTM-Image der Anwendung ab und erfordern eine vorherige Dateiversion. Die lokale Instanz einer Anwendung, die von einer aktualisierten Administratorinstallation installiert wurde, funktioniert möglicherweise nicht mit anderen Updates. Viele binäre Patchanwendungen können fehlschlagen.
  • Wenn Sie einen Patch auf eine Administratorinstallation anwenden, werden die Quelldateien und die .msi Datei aktualisiert, das Netzwerkimage jedoch nicht mit Informationen zum Update versehen. Benutzer können nicht ermitteln, welche Updates sie von der Administratorinstallation erhalten haben. Dies macht es unmöglich, Aktualisierungen zu sequenzieren, die auf der Benutzerseite angewendet wurden, wobei diese bereits auf der Verwaltungsimageseite angewendet wurden.
  • Patches, die auf eine Administratorinstallation angewendet werden, sind keine deinstallierbaren Patches. Dadurch kann verhindert werden, dass der auf dem Computer des Benutzers zwischengespeicherte Paketcode von dem Paketcode in der Administratorinstallation abweicht. Wenn sich der auf dem Computer des Benutzers zwischengespeicherte Paketcode von der Administratorinstallation unterscheidet, installieren Sie die Anwendung von der Administratorinstallation neu, und patchen Sie dann den Clientcomputer.
  • Wenn Sie kleine Updates anwenden möchten, indem Sie ein Administratives Image patchen, befolgen Sie die im Thema beschriebenen Richtlinien: Anwenden kleiner Updates durch Patchen eines Administrativen Images.

Registrieren Sie Updates für die Ausführung mit erhöhten Rechten.

Ab Windows Installer 3.0 ist es möglich, Patches auf eine Anwendung anzuwenden, die in einem vom Benutzer verwalteten Kontext installiert wurde, nachdem der Patch als erhöhte Berechtigungen registriert wurde. Sie können Keine Patches auf Anwendungen anwenden, die in einem benutzerbasierten verwalteten Kontext mit Versionen von Windows Installer vor Version 3.0 installiert sind.

Verwenden Sie die MsiPatchSequence-Tabelle, um Patches zu sequenzieren.

Fügen Sie eine MsiPatchSequence-Tabelle in Ihr Paket ein, und fügen Sie Patchsequenzierungsinformationen hinzu. Ab Windows Installer Version 3.0 kann das Installationsprogramm die MsiPatchSequence-Tabelle verwenden, wenn mehrere Patches installiert werden, um die beste Patchanwendungssequenz zu ermitteln. Verwenden Sie die in der Patchsequenzierung in Windows Installer Version 3.0 beschriebenen Richtlinien zum Definieren von Patchfamilien.

  • Falls praktisch, geben Sie alle Patches als Zugehörigkeit zu einer einzelnen Patchfamilie an. In vielen Fällen bietet eine einzelne Patchfamilie genügend Flexibilität, um Patches zu sequenzieren. Die Komplexität der Erstellung erhöht sich, wenn mehrere Patchfamilien verwendet werden. Weisen Sie der Patchfamilie einen aussagekräftigen Namen zu, und weisen Sie Sequenzwerte in dieser Patchfamilie zu, die sich im Laufe der Zeit erhöhen. Folgen Sie dem Beispiel für mehrere Patches, um Patches in der Reihenfolge anzuwenden, in der sie ausgestellt wurden.
  • Verwenden Sie die PatchSequence-Tabelle in Patchwiz.dll, um die Informationen in der MsiPatchSequence-Tabelle zu generieren. Die Version von PATCHWIZ.DLL, die mit Windows Installer 3.0 veröffentlicht wurde, kann automatisch Patchsequenzierungsinformationen generieren. Weitere Informationen zum Hinzufügen eines neuen Patches finden Sie unter Generieren von Patchsequenzinformationen. Weitere Informationen zu Patchsequenzierungsszenarien finden Sie im Whitepaper: Patch-Sequenzierung in Windows Installer, Version 3.0.

Testen Sie das Installationspaket gründlich.

Testen Sie die korrekte Installation, Reparatur und Entfernung Ihres Windows Installer-Pakets. Sie können Den Testprozess in die folgenden Teile unterteilen.

  • Installationstests – Testen Sie die Installation mit allen möglichen Kombinationen von Anwendungsfeatures. Testen Sie alle Installationstypen, einschließlich administrativer Installation, Rollbackinstallation und Installation-On-Demand. Probieren Sie alle möglichen Installationsmethoden aus, z. B. klicken Sie auf die .msi Datei, Befehlszeilenoptionen und installieren Sie über die Systemsteuerung. Testen Sie, dass das Paket von Benutzern in allen möglichen Berechtigungskontexten installiert werden kann. Versuchen Sie, das Paket zu installieren, nachdem es von allen möglichen Methoden bereitgestellt wurde. Aktivieren Sie die Windows Installer-Protokollierung für jeden Test, und beheben Sie alle Fehler, die im Installationsprotokoll und im Ereignisprotokoll gefunden wurden.
  • Testen der Benutzeroberfläche – Testen Sie das Paket, wenn es mit allen möglichen Benutzeroberflächenebenen installiert wird. Testen Sie das Paket ohne Benutzeroberfläche und mit allen Informationen, die über die Benutzeroberfläche bereitgestellt werden. Stellen Sie sicher, dass die Barrierefreiheit der Benutzeroberfläche und die Benutzeroberfläche für unterschiedliche Bildschirmauflösungen und Schriftgrade erwartungsgemäß funktioniert.
  • Wartungs- und Reparaturtests – Testen Sie, dass das Paket Patching und Upgrades verarbeiten kann, die von einem kleinen Update, minor Upgrade und Major Upgrades bereitgestellt werden. Schreiben Sie vor der Bereitstellung des Pakets ein Testupdate jedes Typs, und versuchen Sie, es auf das ursprüngliche Paket anzuwenden.
  • Deinstallationstests – Stellen Sie sicher, dass beim Entfernen des Pakets keine nutzlosen Teile von sich selbst auf dem Computer des Benutzers verbleiben und dass nur Informationen entfernt wurden, die zum Paket gehören. Starten Sie den Testcomputer nach der Deinstallation des Pakets neu, und überprüfen Sie die Integrität gängiger Systemtools und anderer Standardanwendungen. Testen Sie, dass das Paket von Benutzern in allen möglichen Berechtigungskontexten entfernt werden kann. Testen Sie alle Methoden, um das Paket zu entfernen, klicken Sie auf die .msi Datei, probieren Sie die Befehlszeilenoptionen aus, und versuchen Sie, das Paket aus der Systemsteuerung zu entfernen. Aktivieren Sie die Windows Installer-Protokollierung für jeden Test, und beheben Sie alle Fehler, die im Installationsprotokoll und im Ereignisprotokoll gefunden wurden.
  • Produktfunktionalitätstests – Stellen Sie sicher, dass die Anwendung nach der Installation, Reparatur oder Entfernung des Pakets wie erwartet funktioniert.

Beheben Sie alle Überprüfungsfehler, bevor Sie ein neues oder überarbeitetes Installationspaket bereitstellen.

Führen Sie die Paketüberprüfung für ein neues oder überarbeitetes Windows Installer-Paket aus, bevor Sie es zum ersten Mal installieren möchten. Die Überprüfung überprüft die Windows Installer-Datenbank auf Erstellungsfehler. Beim Versuch, ein Paket zu installieren, das nicht überprüft wird, kann das System des Benutzers beschädigt werden.

Erstellen Sie eine sichere Installation.

Befolgen Sie diese Richtlinien beim Entwickeln Ihres Pakets, um eine sichere Umgebung während der Installation Standard zu unterstützen.

Verwenden von PMSIHANDLE anstelle von HANDLE

Die PMSIHANDLE-Typvariablen werden in msi.h definiert. Es wird empfohlen, dass Ihre Anwendung den PMSIHANDLE-Typ verwendet, da das Installationsprogramm PMSIHANDLE-Objekte schließt, während sie außerhalb des Gültigkeitsbereichs liegen, während Ihre Anwendung MSIHANDLE-Objekte schließen muss, indem MsiCloseHandle aufgerufen wird. PMSIHandle stellt einen Umwandlungsoperator zu MSIHANDLE für die API-Signaturkompatibilität bereit.

Angenommen, Sie verwenden folgenden Code:

MSIHANDLE hRec = MsiCreateRecord(3);

Ändern Sie ihn in:

PMSIHANDLE hRec = MsiCreateRecord(3);