Verteilen Ihrer App und der WebView2-Runtime
Wenn Sie eine App veröffentlichen, die Microsoft Edge WebView2 verwendet, müssen Sie die WebView2-Runtime verteilen, indem Sie entweder die automatisch aktualisierte Evergreen Runtime oder eine feste Version der Runtime verteilen.
Eine WebView2-App hängt von der WebView2-Runtime auf Clientcomputern ab. Beim Verteilen Ihrer WebView2-App müssen Sie berücksichtigen, wie die WebView2-Runtime auf Clientcomputern verteilt und aktualisiert wird.
Die WebView2-Runtime
Die WebView2-Runtime ist eine verteilbare Runtime und dient als zugrunde liegende (oder unterstützende) Webplattform für WebView2-Apps. Das Konzept ähnelt Visual C++ oder der .NET-Runtime für C++/.NET-Apps. Die WebView2-Runtime enthält geänderte Microsoft Edge-Binärdateien, die für WebView2-Apps optimiert und getestet wurden. Nachdem die WebView2-Runtime installiert wurde, wird sie nicht mehr als vom Benutzer sichtbare Browser-App angezeigt. Beispielsweise verfügt ein Benutzer nicht über eine Browser-Desktopverknüpfung oder einen Eintrag im Startmenü .
Es gibt zwei verschiedene Möglichkeiten zum Verteilen und Aktualisieren der WebView2-Runtime auf Clientcomputern: den Evergreen-Verteilungsmodus und den Verteilungsmodus Feste Version.
Der Evergreen Runtime-Verteilungsmodus
Im Evergreen-Verteilungsmodus wird die WebView2-Runtime nicht mit Ihrer App gepackt, sondern zunächst mithilfe eines Online-Bootstrappers oder eines Offlineinstallationsprogramms auf Clients installiert. Anschließend wird die WebView2-Runtime automatisch auf Clientcomputern aktualisiert. Sie können dann Updates Ihrer WebView2-App verteilen, die die neuesten WebView2-APIs aus dem neuesten WebView2 SDK verwenden. Der Evergreen-Verteilungsmodus wird für die meisten Entwickler empfohlen.
Profis:
Die zugrunde liegende Webplattform (WebView2 Runtime) wird automatisch ohne mehr Aufwand aktualisiert.
Für die WebView2-Runtime auf Clientsystemen ist weniger Speicherplatz erforderlich, da die WebView2-Runtime von allen WebView2-Apps gemeinsam genutzt wird, die sich auf dem Client befinden.
Auf berechtigten Systemen sind Binärdateien für Microsoft Edge und evergreen WebView2 Runtime fest miteinander verknüpft, wenn sie sich in derselben Version befinden. Diese Verknüpfung bietet Vorteile für den Speicherplatzbedarf, den Arbeitsspeicher und die Leistung des Datenträgers.
Nachteile:
- Ihre WebView2-App kann nicht angeben, dass eine bestimmte Version der WebView2-Runtime erforderlich ist.
Windows 11- und Windows 10-Geräte
Die Evergreen Runtime ist auf allen Windows 11 Geräten als Teil des Windows 11 Betriebssystems vorinstalliert. Microsoft hat die WebView2-Runtime auf allen berechtigten Windows 10 Geräten installiert, wie unter Bereitstellen von Microsoft Edge WebView2 Runtime für verwaltete Windows 10-Geräte beschrieben. Auch wenn Ihre App den Evergreen-Verteilungsmodus verwendet, empfehlen wir, die WebView2-Runtime zu verteilen, um Edgefälle abzudecken, in denen die Runtime noch nicht installiert war. Weitere Informationen finden Sie unten unter Details zum Evergreen Runtime-Verteilungsmodus .
Der Laufzeitverteilungsmodus "Fixed Version"
Im Verteilungsmodus "Feste Version " laden Sie eine bestimmte Version der WebView2-Runtime herunter und packen sie zusammen mit Ihrer WebView2-App in Ihrem App-Paket. Die WebView2-Runtime, die Sie mit Ihrer App packen, wird nur von Ihrer WebView2-App verwendet, nicht von anderen Apps auf dem Computer des Clients.
Profis:
- Sie haben mehr Kontrolle über die Versionsverwaltung der WebView2-Runtime. Sie wissen, welche WebView2-APIs für Ihre App verfügbar sind, da Sie steuern, welche Version der WebView2-Runtime für Ihre App verfügbar ist. Ihre App muss nicht testen, ob die neuesten APIs vorhanden sind.
Nachteile:
Sie müssen die WebView2-Runtime selbst verwalten. Die WebView2-Runtime wird auf Clients nicht automatisch aktualisiert. Damit Sie die neuesten WebView2-APIs verwenden können, müssen Sie Ihre App in regelmäßigen Abständen zusammen mit der aktualisierten WebView2-Runtime aktualisieren.
Wenn mehrere WebView2-Apps installiert sind, ist mehr Speicherplatz auf dem Client erforderlich.
Die Runtime für feste Versionen kann nicht mithilfe eines Installationsprogramms installiert werden.
Grundlegendes zu den Optionen auf der Runtime-Downloadseite
Der Abschnitt WebView2-Runtime herunterladen der Seite Microsoft Edge WebView2 enthält mehrere Optionen zum Verteilen der WebView2-Runtime auf Clientcomputern. Das Verständnis der Optionen auf dieser Seite bietet eine gute Einführung, um zu entscheiden, welchen Ansatz Sie verwenden möchten.
Der Evergreen-Verteilungsmodus wird für die meisten Apps empfohlen.
Der Abschnitt Evergreen Bootstrapper der Seite enthält einen kleinen Evergreen Runtime-Bootstrapper, der auf dem Clientcomputer für Onlinebenutzer ausgeführt wird. Der Bootstrapper lädt die entsprechende Evergreen WebView2 Runtime herunter und installiert sie auf dem Client. Sie können den Bootstrapper auf verschiedene Arten verwenden:
Verknüpfen Sie den Bootstrapper mithilfe eines Links, den Sie über die Schaltfläche Link abrufen erhalten. Ihre App verwendet diesen Link, um den Bootstrapper programmgesteuert auf den Client herunterzuladen und den Bootstrapper aufzurufen. Dieser Ansatz vermeidet die Notwendigkeit, den Bootstrapper mit Ihrer App zu packen. Dieser Ansatz ist vom Content Delivery Network (CDN) von Microsoft abhängig, um den Bootstrapper abzurufen.
Laden Sie den Bootstrapper herunter (über die Schaltfläche Herunterladen im Abschnitt Bootstrapper ), und verteilen Sie den Bootstrapper dann mit Ihrer App. Bei diesem Ansatz packen Sie den Bootstrapper mit Ihrem App-Installationsprogramm/Updater oder mit Ihrer App selbst und rufen den Bootstrapper auf, den Sie in Ihre App eingeschlossen haben. Dieser Ansatz vermeidet abhängigkeiten vom CDN von Microsoft, um den Bootstrapper abzurufen.
Der Abschnitt Evergreen Standalone Installer auf der Seite enthält einen großen, eigenständigen Evergreen-Installer, der hauptsächlich für Offlinebenutzer bestimmt ist. Bei diesem Ansatz packen Sie das eigenständige Installationsprogramm mit Ihrem App-Installer/Updater oder ihrer App selbst und rufen das eigenständige Evergreen-Installationsprogramm auf. Dieser Ansatz vermeidet abhängigkeiten vom CDN von Microsoft, um die Runtime abzurufen.
Im Abschnitt Feste Version der Seite wird eine Laufzeitversion mit fester Version bereitgestellt, bei der es sich um eine bestimmte Version der WebView2-Runtime handelt, die Sie zusammen mit Ihrer App verteilen.
Details zur WebView2-Runtime
Stellen Sie beim Verteilen Ihrer WebView2-App sicher, dass die WebView2-Runtime auf dem Clientcomputer vorhanden ist. Diese Anforderung gilt sowohl für den Evergreen-Modus als auch für den Distributionsmodus "Feste Version".
Wenn Sie den Verteilungsmodus "Feste Version" verwenden möchten, können Sie die nächsten Abschnitte überspringen und mit Details zum Laufzeitverteilungsmodus "Feste Version" fortfahren.
Warten der WebView2-Runtime über Windows Server Update Services (WSUS)
Weitere Informationen finden Sie unter Windows Server Update Services (WSUS) unter Unternehmensverwaltung von WebView2-Runtimes.
Laufzeit- oder Browserunterstützung während der Entwicklung oder Produktion
Während der Entwicklung und beim Testen kann eine WebView2-App beide Optionen als unterstützende Webplattform verwenden:
Die WebView2-Runtime. Die Runtime bietet im Allgemeinen die gleichen Webplattformfunktionen und den gleichen Updaterhythmus wie der Stable-Kanal des Microsoft Edge-Browsers. Verwenden Sie die WebView2-Runtime in einer Produktionsumgebung oder zum Entwickeln und Testen auf der Webplattform, über die Ihre Benutzer heute verfügen.
Ein Vorschaukanal (Insider) des Microsoft Edge-Browsers. Diese Microsoft Edge-Vorschaukanäle sind Beta, Dev und Canary. Verwenden Sie diesen Ansatz, um Ihre App auf Vorwärtskompatibilität zu testen, damit Sie wissen, ob ein Breaking Change bevorsteht, der eine Aktualisierung Ihrer App erfordert. Weitere Informationen finden Sie unter Testen anstehender APIs und Features.
Ein Produktionsrelease einer WebView2-App kann nur die WebView2-Runtime als unterstützende Webplattform verwenden, nicht Microsoft Edge.
Microsoft Edge Stable-Kanal wird für WebView2 nicht unterstützt
WebView2-Apps dürfen den Stable-Kanal von Microsoft Edge nicht als unterstützende Webplattform verwenden. Diese Einschränkung verhindert, dass eine Produktionsversion einer WebView2-App eine Abhängigkeit vom Browser übernimmt. Eine WebView2-App kann aus folgenden Gründen keine Abhängigkeit vom Browser während der Produktion annehmen:
Microsoft Edge ist nicht garantiert auf allen Benutzergeräten vorhanden. Viele Geräte in Unternehmen und im Bildungsbereich sind von Windows Update getrennt oder werden nicht direkt von Microsoft verwaltet. Auf solchen Geräten ist Microsoft Edge möglicherweise nicht installiert. Wenn die Produktionsversion von WebView2-Apps die WebView2-Runtime anstelle von Microsoft Edge verwendet, wird Microsoft Edge nicht zu einer Voraussetzung für die Ausführung einer WebView2-App.
Browser und Apps haben unterschiedliche Anwendungsfälle. Wenn eine WebView2-App das Vorhandensein von Microsoft Edge auf dem Client erfordert, hätte dies potenziell unbeabsichtigte Nebenwirkungen auf die WebView2-App. Beispielsweise kann ein IT-Administrator verhindern, dass der Browser von einer bestimmten Version aktualisiert wird, um die Kompatibilität des Browsers mit einer internen Website zu gewährleisten. Wenn die Produktionsversion einer WebView2-App anstelle des Browsers die WebView2-Runtime verwendet, bleibt die WebView2-App immergrün, auch wenn Browserupdates vom Administrator der Clients verhindert werden.
Im Gegensatz zum Browser wird die WebView2-Runtime für App-Szenarien entwickelt und getestet, und in einigen Fällen kann die WebView2-Runtime Fehlerbehebungen enthalten, die noch nicht im Browser verfügbar sind.
Die Evergreen WebView2 Runtime wird als Teil des Windows 11 Betriebssystems enthalten sein. Verschiedene WebView2-Apps haben die Evergreen Runtime vor dem Windows 11 auf Geräten mit einem Betriebssystem installiert. Auf einigen Geräten ist die Runtime jedoch möglicherweise nicht vorinstalliert. Daher empfiehlt es sich, zu überprüfen, ob die Runtime auf dem Client vorhanden ist.
Bevor Ihre App eine WebView2 erstellt, sollte die App überprüfen, ob die WebView2-Runtime vorhanden ist (entweder durch Überprüfen eines Registrierungsschlüssels oder durch Aufrufen einer API) und die Runtime installieren, falls sie fehlt. Die App kann diese Überprüfung beim Installieren oder Aktualisieren Ihrer App (empfohlen) oder zur App-Laufzeit durchführen. Informationen zum Überprüfen, ob die Runtime vorhanden ist, finden Sie weiter unten unter Bereitstellen der Evergreen WebView2-Runtime.
Details zum Evergreen Runtime-Verteilungsmodus
Der Evergreen-Verteilungsmodus stellt sicher, dass Ihre WebView2-App die neuesten WebView2-Features und Sicherheitsupdates nutzt. Der Evergreen-Verteilungsmodus weist die folgenden Merkmale auf:
Die WebView2-Runtime wird automatisch aktualisiert, ohne dass Eine Aktion von Ihnen erforderlich ist. Es erhält die gleichen Microsoft Edge-Updates, die in Versionshinweisen für Microsoft Edge Stable Channel und Versionshinweise für Microsoft Edge Security Updates beschrieben sind.
Alle WebView2-Apps, die den Evergreen-Verteilungsmodus verwenden, verwenden eine freigegebene Kopie der Evergreen WebView2 Runtime, wodurch Speicherplatz gespart wird.
Auf berechtigten Systemen sind Binärdateien für Microsoft Edge und evergreen WebView2 Runtime fest miteinander verknüpft, wenn sie sich in derselben Version befinden. Diese Verknüpfung bietet Vorteile für den Speicherplatzbedarf, den Arbeitsspeicher und die Leistung des Datenträgers.
Wenn Sie den Evergreen-Verteilungsmodus der WebView2-Runtime verwenden, geht Ihre WebView2-App davon aus, dass Clients über die neueste Runtime verfügen. Ihre App kann keine bestimmte Version der WebView2-Runtime für alle Apps auf dem Client erfordern. Zum Zeitpunkt der Veröffentlichung eines neuen WebView2 SDK-Pakets wurde bereits eine kompatible Version der WebView2-Runtime an Clients verteilt. Daher ist es in Ordnung, dass Ihre WebView2-App die APIs verwendet, die in der neuesten Version des WebView2 SDK enthalten sind.
Windows 11- und Windows 10-Geräte (Details)
Auf den meisten Windows 10-Geräten ist die WebView2-Runtime bereits installiert, wie unter Bereitstellen von Microsoft Edge WebView2 Runtime für verwaltete Windows 10-Geräte beschrieben. Auf einer kleinen Anzahl von Windows 10 Geräten ist die WebView2-Runtime nicht installiert. Es wird empfohlen, diesen Edgefall mit einem der folgenden Ansätze zu behandeln:
Stellen Sie die Evergreen Runtime programmgesteuert mit Ihrer App bereit. Siehe Bereitstellen der Evergreen WebView2 Runtime weiter unten.
Umleiten Ihrer Endbenutzer zur Microsoft-Website: Laden Sie Microsoft Edge WebView2 herunter, und bitten Sie Endbenutzer, das Evergreen WebView2 Runtime-Installationsprogramm von der Website herunterzuladen und die Runtime selbst zu installieren.
Siehe auch:
- Vorabversion und Release-SDKs für WebView2 : Verwenden Sie eine Vorabversion des SDK zusammen mit einem Vorschaukanal von Microsoft Edge. oder verwenden Sie eine Releaseversion des SDK zusammen mit der Evergreen WebView2 Runtime.
- Bereitstellen von Microsoft Edge WebView2 Runtime für verwaltete Windows 10-Geräte.
Bereitstellen der Evergreen WebView2 Runtime
Für alle Evergreen-Apps auf dem Gerät ist nur eine Installation der Evergreen WebView2-Runtime erforderlich. Mehrere Tools finden Sie unter Herunterladen der WebView2-Runtime , die Sie bei der Bereitstellung der Evergreen Runtime unterstützen.
Für Onlineclients: WebView2 Runtime Bootstrapper ist ein kleines Installationsprogramm (ca. 2 MB). Der WebView2 Runtime Bootstrapper lädt die Evergreen Runtime von Microsoft-Servern herunter und installiert sie, die der Gerätearchitektur des Benutzers entspricht.
Verknüpfen Sie im Setupteil Ihrer WebView2-App mit dem Bootstrapper. Verwenden Sie einen Link, um den Bootstrapper programmgesteuert herunterzuladen. Wählen Sie auf der obigen Downloadseite die Schaltfläche Link abrufen aus.
Oder laden Sie den Bootstrapper herunter, und packen Sie ihn mit Ihrer WebView2-App.
Für Offlineclients: Der eigenständige WebView2-Runtime-Installer ist ein vollständiges Installationsprogramm, das evergreen WebView2 Runtime in Offlineumgebungen installiert.
Wenn Sie den App-Installer zum Bereitstellen von MSIX-Anwendungen verwenden, können Sie die WebView2-Runtime als Abhängigkeit angeben, damit sie mit der Anwendung installiert wird. Ausführliche Informationen hierzu finden Sie unter win32dependencies:ExternalDependency (Windows 10, Windows 11) in der Dokumentation zum App-Paketmanifest. Weitere Informationen finden Sie unter Installieren von Windows 10-Apps mit dem App-Installer.
Installieren der Runtime pro Computer oder pro Benutzer
Der neueste Bootstrapper und das eigenständige Installationsprogramm unterstützen Installationen der WebView2-Runtime sowohl pro Computer als auch pro Benutzer .
Wenn Sie das Installationsprogramm über einen Prozess oder eine Eingabeaufforderung mit erhöhten Rechten ausführen, wird die Runtime pro Computer installiert. Wenn Sie das Installationsprogramm nicht über einen Prozess oder eine Eingabeaufforderung mit erhöhten Rechten ausführen, wird die Runtime pro Benutzer installiert. Eine Installation pro Benutzer wird jedoch automatisch durch eine Installation pro Computer ersetzt, wenn ein Microsoft Edge Updater pro Computer vorhanden ist. Ein Microsoft Edge Updater pro Computer ist als Teil von Microsoft Edge enthalten, mit Ausnahme des Canary-Vorschaukanals von Microsoft Edge.
Verwenden Sie den folgenden Onlinebereitstellungsworkflow oder Offlinebereitstellungsworkflow, um sicherzustellen, dass die Runtime bereits installiert ist, bevor Ihre App gestartet wird. Sie können Ihren Workflow je nach Szenario anpassen. Beispielcode ist im Beispielrepository verfügbar.
Erkennen, ob eine WebView2-Runtime bereits installiert ist
Verwenden Sie einen der folgenden Ansätze, um zu überprüfen, ob eine WebView2-Runtime installiert ist:
Ansatz 1: Überprüfen Sie den
pv (REG_SZ)
Registrierungsschlüssel für die WebView2-Runtime an beiden der folgenden Registrierungsspeicherorte. DerHKEY_LOCAL_MACHINE
Registrierungsschlüssel wird für die Installation pro Computer verwendet. DerHKEY_CURRENT_USER
Registrierungsschlüssel wird für die Installation pro Benutzer verwendet.Für WebView2-Anwendungen muss mindestens einer dieser Registrierungsschlüssel vorhanden und mit einer Version größer als 0.0.0.0 definiert sein. Wenn kein regkey vorhanden ist oder nur einer dieser Registrierungsschlüssel vorhanden ist
null
, der Wert jedoch , eine leere Zeichenfolge oder 0.0.0.0.0 ist, bedeutet dies, dass die WebView2-Runtime nicht auf dem Client installiert ist. Überprüfen Sie diese Registrierungsschlüssel, um zu ermitteln, ob die WebView2-Runtime installiert ist, und um die Version der WebView2-Runtime abzurufen. Suchen Siepv (REG_SZ)
an den folgenden beiden Speicherorten.Die beiden Registrierungsspeicherorte, die unter 64-Bit-Windows überprüft werden sollen:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
Die beiden Registrierungsspeicherorte, die unter 32-Bit-Windows überprüft werden sollen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
Ansatz 2: Führen Sie GetAvailableCoreWebView2BrowserVersionString aus, und bewerten Sie, ob ist
versionInfo
nullptr
.nullptr
gibt an, dass die WebView2-Runtime nicht installiert ist. Diese API gibt Versionsinformationen für die WebView2-Runtime oder für alle installierten Vorschaukanäle von Microsoft Edge (Beta, Dev oder Canary) zurück.
Reine Onlinebereitstellung
Verwenden Sie den folgenden Workflow, wenn Sie ein Szenario haben, in dem nur online bereitgestellt wird, bei dem angenommen wird, dass Benutzer über Internetzugriff verfügen.
Führen Sie während des App-Setups einen Test aus, um sicherzustellen, dass die WebView2-Runtime bereits installiert ist. Weitere Informationen finden Sie weiter oben unter Erkennen, ob eine WebView2-Runtime bereits installiert ist.
Wenn die Runtime nicht installiert ist, verwenden Sie in Ihrem App-Setupprozess den Link (über die Schaltfläche Link abrufen auf der Downloadseite), um den WebView2 Runtime Bootstrapper programmgesteuert herunterzuladen.
Rufen Sie den WebView2 Runtime Bootstrapper auf, indem Sie den folgenden Befehl ausgeben.
Wenn Sie den folgenden Befehl über einen Prozess oder eine Eingabeaufforderung mit erhöhten Rechten ausführen, wird eine Installation pro Computer ausgelöst. Wenn Sie den Befehl nicht über einen Prozess oder eine Eingabeaufforderung mit erhöhten Rechten ausführen, erfolgt eine Installation pro Benutzer . Eine Installation pro Benutzer wird jedoch automatisch durch eine Installation pro Computer ersetzt, wenn ein Microsoft Edge Updater pro Computer vorhanden ist. Ein computerspezifischer Microsoft Edge Updater wird als Teil von Microsoft Edge bereitgestellt, mit Ausnahme des Canary-Vorschaukanals von Microsoft Edge. Weitere Informationen finden Sie unter Installieren der Runtime pro Computer oder pro Benutzer.
MicrosoftEdgeWebview2Setup.exe /silent /install
Der obige Workflow hat mehrere Vorteile:
Die Runtime wird nur bei Bedarf installiert.
Sie müssen kein Runtime-Installationsprogramm mit Ihrer WebView2-App packen.
Der WebView2 Runtime Bootstrapper erkennt automatisch die Architektur (Plattform) des Geräts und installiert dann die entsprechende WebView2-Runtime.
Die Runtime wird automatisch installiert.
Alternativ können Sie den Evergreen Bootstrapper für die WebView2-Runtime mit Ihrer App packen, anstatt den Bootstrapper bei Bedarf programmgesteuert herunterzuladen, indem Sie einen Link abrufen, wie oben gezeigt.
Offlinebereitstellung
Wenn Sie ein Offlinebereitstellungsszenario haben, bei dem die App-Bereitstellung vollständig offline funktionieren muss, verwenden Sie den folgenden Workflow.
Laden Sie den eigenständigen Evergreen-Installer unter Herunterladen der WebView2-Runtime auf Ihren Entwicklungscomputer herunter. Der eigenständige Evergreen-Installer installiert die Evergreen WebView2 Runtime auf dem Client.
Schließen Sie den eigenständigen Evergreen-Installer in Ihr App-Installationsprogramm oder -Updater ein.
Führen Sie während des App-Setups einen Test aus, um sicherzustellen, dass die WebView2-Runtime bereits installiert ist. Weitere Informationen finden Sie weiter oben unter Erkennen, ob eine WebView2-Runtime bereits installiert ist.
Wenn die WebView2-Runtime nicht installiert ist, führen Sie den eigenständigen Evergreen-Installer aus. Wenn Sie eine automatische Installation ausführen möchten, können Sie den folgenden Befehl ausführen.
Wenn Sie den folgenden Befehl über einen Prozess oder eine Eingabeaufforderung mit erhöhten Rechten ausführen, wird eine Installation pro Computer ausgelöst. Wenn Sie den Befehl nicht über einen Prozess oder eine Eingabeaufforderung mit erhöhten Rechten ausführen, erfolgt eine Installation pro Benutzer . Eine Installation pro Benutzer wird jedoch automatisch durch eine Installation pro Computer ersetzt, wenn ein Microsoft Edge Updater pro Computer vorhanden ist. Ein computerspezifischer Microsoft Edge Updater wird als Teil von Microsoft Edge bereitgestellt, mit Ausnahme des Canary-Vorschaukanals von Microsoft Edge. Weitere Informationen finden Sie unter Installieren der Runtime pro Computer oder pro Benutzer.
MicrosoftEdgeWebView2RuntimeInstaller{X64/X86/ARM64}.exe /silent /install
Behandeln von Evergreen WebView2 Runtime-Updates
Neue Versionen der Evergreen WebView2 Runtime werden automatisch auf den Client heruntergeladen. Der Client verwendet die neue Version der WebView2-Runtime, wenn Ihre WebView2-App neu gestartet wird. Wenn Ihre App jedoch kontinuierlich ausgeführt wird, verwendet Ihre App weiterhin die vorherige Version der WebView2-Runtime. Dies hat Auswirkungen auf die Sicherheit, da die vorherige Version der WebView2-Runtime Sicherheitslücken aufweisen kann, die in der neuen Version behoben wurden. Sie sollten überlegen, ob es für Ihre App wichtig ist, die neueste Version der WebView2-Runtime so schnell wie möglich basierend auf dem Bedrohungsmodell Ihrer App zu übernehmen. Wenn Ihre WebView2-App beispielsweise auf Drittanbieterinhalte zugreift, sollten diese Inhalte als nicht vertrauenswürdig betrachtet werden, sodass Ihre App die neueste Version der WebView2-Runtime verwenden muss.
Um die neue Version der WebView2-Runtime zu verwenden, müssen Sie entweder alle Verweise auf die vorherigen WebView2-Umgebungsobjekte freigeben oder Ihre App neu starten. Wenn Ihre App das nächste Mal eine neue WebView2-Umgebung erstellt, verwendet die App die neue Version der WebView2-Runtime. Um dies zu erreichen, können Sie einen Ereignishandler für das NewBrowserVersionAvailable
Ereignis verwenden, damit Ihre App den Benutzer automatisch darüber benachrichtigt, die App neu zu starten. Wenn Ihre App den Neustart der App verarbeitet, sollten Sie den Benutzerzustand speichern, bevor die WebView2-App beendet wird.
-
CoreWebView2Environment
Klasse:
Testen Ihrer App auf Vorwärtskompatibilität
Im Evergreen-Verteilungsmodus wird die WebView2-Runtime automatisch auf dem Client auf dem neuesten Stand gehalten, um die neuesten Features und Sicherheitskorrekturen bereitzustellen. Wenn Sie die Evergreen-Distribution verwenden, sollten Sie eine Testinfrastruktur einrichten, um sicherzustellen, dass Ihre WebView2-App mit dem Web kompatibel bleibt.
Bewährte Methoden zum Testen Ihrer App auf Vorwärtskompatibilität finden Sie unter Vorabversionstests mithilfe von Vorschaukanälen und Selbsthosting durch Bereitstellen von Vorschaukanälen.
Featureerkennung bei Verwendung aktueller APIs
Bei Verwendung des Evergreen-Modus in WebView2-Apps ist es wichtig, mithilfe von Methoden wie QueryInterface
oder try-catch
auf das Vorhandensein neuer APIs auf dem Computer des Clients zu überprüfen, da der Clientcomputer möglicherweise nicht über die neueste WebView2-Runtime verfügt, die die neuen APIs enthält. Updates zur WebView2-Runtime tritt möglicherweise nicht auf, wenn ein IT-Admin das Update deaktiviert oder der Client offline ist.
Weitere Informationen finden Sie unter Featureerkennung, um zu testen, ob die installierte Runtime kürzlich hinzugefügte APIs inVorabversion und Release-SDKs für WebView2 unterstützt.
Es gibt separate Updaterichtlinien für Microsoft Edge und die WebView2-Runtime. Das Deaktivieren von Updates für Microsoft Edge wirkt sich nicht auf die Verfügbarkeit der neuesten WebView2-APIs aus, da die WebView2-Runtime weiterhin automatisch aktualisiert werden kann (es sei denn, das Aktualisieren der WebView2-Runtime wird durch eine Admin deaktiviert).
Details zum Laufzeitverteilungsmodus "Fixed Version"
Für eingeschränkte Umgebungen mit strengen Kompatibilitätsanforderungen sollten Sie den Verteilungsmodus "Feste Version" verwenden. (Der Verteilungsmodus "Feste Version" wurde zuvor als Bring-Your-Own bezeichnet.)
Im Verteilungsmodus "Feste Version" steuern Sie den Zeitpunkt von Updates an der WebView2-Runtime für Ihre App. Sie laden eine bestimmte Version der WebView2-Runtime herunter und packen sie dann mit Ihrer WebView2-App. Die WebView2-Runtime auf dem Client wird nicht automatisch aktualisiert. Stattdessen aktualisieren Sie in regelmäßigen Abständen die WebView2-Runtime, die zusammen mit Ihrer aktualisierten App gepackt und verteilt wird. Der Ansatz mit fester Version verwendet keinen Registrierungsschlüssel für die WebView2-Runtime.
Die Binärdateien mit fester Version sind über 250 MB groß und vergrößern Ihr App-Paket um diesen Betrag.
So verwenden Sie den Verteilungsmodus "Feste Version"
Laden Sie die feste Version der WebView2-Runtime unter Herunterladen der WebView2-Runtime als Paket herunter.
Die am häufigsten gepatchte Version der neuesten und zweitneuesten Hauptversionen steht auf dieser Website zum Download zur Verfügung. Bewahren Sie eine archivierte Kopie aller benötigten Versionen auf.
Dekomprimieren Sie das WebView2-Runtime-Paket mithilfe des Befehlszeilenbefehls
expand {path to the package} -F:* {path to the destination folder}
oder mithilfe eines Dekomprimierungstools wie WinRAR. Vermeiden Sie das Dekomprimieren durch Explorer, da dieser Ansatz möglicherweise nicht die richtige Ordnerstruktur generiert.Schließen Sie alle dekomprimierten Binärdateien mit fester Version in Ihr App-Paket ein, die während der Installation Ihrer App auf dem Zielcomputer bereitgestellt werden sollen.
Geben Sie beim Erstellen der WebView2-Umgebung den Pfad zu den Binärdateien mit fester Version an.
Für Win32 C/C++ können Sie die Umgebung mit der CreateCoreWebView2EnvironmentWithOptions-Funktion erstellen. Verwenden Sie den
browserExecutableFolder
-Parameter, um den Pfad zu dem Ordner anzugeben, der enthältmsedgewebview2.exe
.Für .NET müssen Sie die Umgebung angeben, bevor die WebView2-Eigenschaft
Source
wirksam wird. Für .NET können Sie einen der folgenden Ansätze verwenden, um die Umgebung anzugeben:Legen Sie die
CreationProperties
Eigenschaft (WPF/WinForms) für dasWebView2
-Element fest. Verwenden Sie denBrowserExecutableFolder
Member in derCoreWebView2CreationProperties
Klasse (WPF/WinForms), um den Pfad zu den Binärdateien mit fester Version anzugeben.Alternativ können Sie (WPF/WinForms) verwenden
EnsureCoreWebView2Async
, um die Umgebung anzugeben. Verwenden Sie denbrowserExecutableFolder
Parameter in CoreWebView2Environment.CreateAsync , um den Pfad zu den Binärdateien mit fester Version anzugeben.
Stellen Sie für WinUI sicher, dass die App Zugriff auf den Ordner hat, indem Sie den installierten Speicherort angeben und die Umgebungsvariable für den Laufzeitpfad festlegen. Eine Möglichkeit besteht darin, Ihrer App den folgenden C#-Code hinzuzufügen:
StorageFolder localFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; String fixedPath = Path.Combine(localFolder.Path, "FixedRuntime\\(version number)"); Debug.WriteLine($"Launch path [{localFolder.Path}]"); Debug.WriteLine($"FixedRuntime path [{fixedPath}]"); Environment.SetEnvironmentVariable("WEBVIEW2_BROWSER_EXECUTABLE_FOLDER", fixedPath);
Packen Und versenden Sie die Binärdateien mit fester Version mit Ihrer App. Aktualisieren Sie die Binärdateien nach Bedarf.
Für WinUI kann dies das Öffnen der Projektdatei (
.csproj
) in einem Code-Editor umfassen und dann den folgenden Code innerhalb der Projekttags hinzufügen:<ItemGroup> <Content Include="FixedRuntime\(version number)\\**\*.*"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup>
Vergewissern Sie sich, dass der
bin\**designated architecture**\Release
Ordner über einen entsprechenden FixedRuntime\(Versionsnummer)-Ordner mit den Laufzeitdateien verfügt.
Auf Windows 10 Geräten müssen Entwickler von nicht gepackten Win32-Anwendungen mit fester Version ab Version 120 die folgenden Befehle ausführen, damit die feste Version weiterhin funktioniert. Dies ist auf eine Sicherheitsverbesserung in v120 zurückzuführen, um den Rendererprozess innerhalb des App-Containers auszuführen. Diese Änderung wirkt sich nicht auf Windows 11 Geräte, die ältere Runtime oder gepackte Apps aus.
Suchen Sie den Pfad, in dem Sie das Paket "Feste Version" auf dem Gerät des Benutzers bereitstellen, z. B. den folgenden Speicherort:
D:\myapp\Microsoft.WebView2.FixedVersionRuntime.87.0.664.8.x64
Führen Sie die folgenden Befehle auf dem Gerät des Benutzers aus:
icacls {Fixed Version path} /grant *S-1-15-2-2:(OI)(CI)(RX) icacls {Fixed Version path} /grant *S-1-15-2-1:(OI)(CI)(RX)
Vergewissern Sie sich, dass berechtigungen für
ALL APPLICATION PACKAGES
undALL RESTRICTED APPLICATION PACKAGES
auf der Registerkarte Sicherheit des Ordners Fixed Version gewährt werden, wie unten gezeigt:
Bekannte Probleme bei der behobenen Version
- Derzeit kann die feste Version nicht über einen Netzwerkspeicherort oder UNC-Pfad ausgeführt werden.
Dateien, die mit der App ausgeliefert werden sollen
Der WebView2Loader
Code muss mit der App ausgeliefert werden. Dies kann durch eine statische VerknüpfungWebView2Loader.lib
mit den App-Binärdateien oder durch Einfügen von erfolgen, die WebView2Loader.dll
der Architektur der App entspricht. In der Regel wird dies automatisch von Visual Studio behandelt, wenn Sie die .targets
Datei im WebView2 SDK verwenden. Es kann jedoch vorkommen, dass Sie manuell angeben müssen, welche Dateien mit Ihrer App veröffentlicht werden sollen.
WebView2Loader.dll
ist eine native und architekturspezifische Binärdatei, sodass Sie alle Varianten dieser Binärdatei einschließen müssen, in denen Ihre App ausgeführt werden soll. Zum Beispiel:
Für x86 würden Sie die x86-Version von
WebView2Loader.dll
einschließen.Für eine verwaltete App mit AnyCPU würden Sie die x86-, x64- und arm64-Versionen von
WebView2Loader.dll
einschließen. Die richtige Version vonWebView2Loader.dll
wird aus dem entsprechenden architekturspezifischen Ordner geladen.
Beispiel für systemeigene App-Ordnerstruktur:
\<myApp>
\WebView2Loader.dll
Für verwaltete .NET-Apps müssen Sie auch die WebView2 .NET-Assemblys für die WebView2-Kernfunktionalität (Microsoft.Web.WebView2.Core.dll
) und für die WPF/WinForms-spezifische Funktionalität (Microsoft.Web.WebView2.Winforms.dll
oder Microsoft.Web.WebView2.WPF.dll
) einschließen.
Beispiel für die Ordnerstruktur einer verwalteten App:
\<myApp>
\Microsoft.Web.WebView2.Core.dll
\Microsoft.Web.WebView2.Winforms.dll
\Microsoft.Web.WebView2.WPF.dll
\runtimes
\win-arm64\native\WebView2Loader.dll (arm64)
\win-x64\native\WebView2Loader.dll (x64)
\win-x86\native\WebView2Loader.dll (x86)