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.

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.

Optionen zum Verteilen und Aktualisieren der WebView2-Runtime

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 WebView2 Evergreen 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.

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:

Siehe auch:

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 bereits eine geeignete WebView2-Runtime 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. Der HKEY_LOCAL_MACHINE Registrierungsschlüssel wird für die Installation pro Computer verwendet. Der HKEY_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 Sie pv (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 versionInfonullptr. 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.

  1. Führen Sie während des App-Setups einen Test aus, um sicherzustellen, dass die WebView2-Runtime bereits installiert ist. Weitere Informationen finden Sie unter Erkennen, ob bereits eine geeignete WebView2-Runtime installiert ist.

  2. 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.

  3. 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.

  1. Laden Sie den eigenständigen Evergreen-Installer unter Herunterladen der WebView2-Runtime auf Ihren Entwicklungscomputer herunter. Das eigenständige Evergreen-Installationsprogramm installiert die WebView2 Evergreen Runtime auf dem Client.

  2. Schließen Sie den eigenständigen Evergreen-Installer in Ihr App-Installationsprogramm oder -Updater ein.

  3. Führen Sie während des App-Setups einen Test aus, um sicherzustellen, dass die WebView2-Runtime bereits installiert ist. Weitere Informationen finden Sie unter Erkennen, ob bereits eine geeignete WebView2-Runtime installiert ist.

  4. 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
    

Testen Ihrer App auf Vorwärtskompatibilität

Das Web entwickelt sich ständig weiter. 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.

Microsoft Edge-Vorschaukanäle (Beta, Dev und Canary) bieten einen kleinen Einblick in die nächsten Schritte in der WebView2-Runtime. Testen Sie Ihre WebView2-App regelmäßig mit einem Microsoft Edge-Vorschaukanal, und aktualisieren Sie Ihre App, oder melden Sie Probleme , wenn Probleme auftreten. Canary ist der empfohlene Vorschaukanal, da er im schnellsten Rhythmus ausgeliefert wird und über die neuesten APIs verfügt.

Informationen zur Entscheidung, welcher Kanal der richtige ist, finden Sie unter Übersicht über die Microsoft Edge-Kanäle. Sie können Microsoft Edge Insider Channels für Ihre Testumgebung herunterladen und umgebungsvariablen oder verwenden regkey , um die Kanalpräferenz für Ihre Test-App anzugeben.

Weitere Informationen finden Sie unter CreateCoreWebView2EnvironmentWithOptions. Sie können webDriver auch verwenden, um WebView2-Tests zu automatisieren, wie unter Automatisieren und Testen von WebView2 mit Microsoft Edge WebDriver beschrieben.

Featureerkennung bei Verwendung aktueller APIs

Wenn Sie den Evergreen-Modus verwenden und Ihre WebView2-App eine neue WebView2-API aus einem aktuellen SDK verwendet, sollten Sie einen Ansatz wie QueryInterface oder try-catch verwenden, um sicherzustellen, dass die neue API auf dem Computer des Clients vorhanden ist. Diese Featureerkennung ist eine bewährte Methode, da es Fälle gibt, in denen die WebView2-Runtime nicht aktualisiert wird.

Selbst wenn Sie den Evergreen-Verteilungsmodus verwenden, wird die WebView2-Runtime aus den folgenden Gründen möglicherweise nicht aktualisiert:

  • Ein IT-Admin kann Updates der WebView2-Runtime deaktivieren, da ein Admin die Kontrolle über die Aktualisierung seiner Geräte hat.

  • Clients, die offline sind, erhalten die aktualisierte WebView2-Runtime nicht.

Die Updaterichtlinien für Microsoft Edge und die WebView2-Runtime sind getrennt. Selbst wenn die IT-Admin automatische Updates von Microsoft Edge deaktiviert hat, wird die WebView2-Runtime weiterhin automatisch aktualisiert, es sei denn, die Admin deaktiviert Runtimeupdates. Wenn das Admin das Aktualisieren von Microsoft Edge deaktiviert (was etwas üblich ist), wirkt sich dies nicht darauf aus, welche WebView2-APIs auf dem Clientcomputer verfügbar sind.

Informationen zum Testen, ob die installierte Runtime kürzlich hinzugefügte APIs unterstützt, finden Sie unter Featureerkennung.

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"

  1. 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.

  2. 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.

  3. 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.

  4. 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ält msedgewebview2.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 das WebView2 -Element fest. Verwenden Sie den BrowserExecutableFolder Member in der CoreWebView2CreationProperties 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 den browserExecutableFolder 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);
      
  5. 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.

  6. 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.

    1. 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
      
    2. 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)
      
    3. Vergewissern Sie sich, dass berechtigungen für ALL APPLICATION PACKAGES und ALL RESTRICTED APPLICATION PACKAGES auf der Registerkarte Sicherheit des Ordners Fixed Version gewährt werden, wie unten gezeigt:

      Berechtigung für PlayReady

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.dlleinschließen.

  • Für eine verwaltete App mit AnyCPU würden Sie die x86-, x64- und arm64-Versionen von WebView2Loader.dlleinschließen. Die richtige Version von WebView2Loader.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)