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 hart 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.
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 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 dann den Bootstrapper 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 der Seite bietet einen großen, eigenständigen Evergreen-Installer, hauptsächlich für Offlinebenutzer. 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 ein Produktionsrelease 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 dieselben Microsoft Edge-Updates, die in den Versionshinweisen für Microsoft Edge Stable Channel und Versionshinweise für Microsoft Edge Security Aktualisierungen 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 hart 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.
Weitere Informationen finden Sie unter Grundlegendes zu Browserversionen und WebView2.
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: WebView2 Runtime Standalone Installer ist ein vollständiges Installationsprogramm, das evergreen WebView2 Runtime in Offlineumgebungen installiert.
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 Pro-Computer-Microsoft Edge Updater 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. 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 keiner der regkeys vorhanden ist oder nur einer dieser Registrierungsschlüssel vorhanden ist
null
, dessen Wert jedoch , eine leere Zeichenfolge oder 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 der App-Einrichtung 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.
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 Pro-Computer-Microsoft Edge Updater 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. Das eigenständige Evergreen-Installationsprogramm installiert die WebView2 Evergreen Runtime auf dem Client.
Schließen Sie den eigenständigen Evergreen-Installer in Ihr App-Installationsprogramm oder -Updater ein.
Führen Sie während der App-Einrichtung 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.
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 Pro-Computer-Microsoft Edge Updater 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 die 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"
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.Verwenden Sie
EnsureCoreWebView2Async
alternativ (WPF/WinForms), 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 in den 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 Darin enthaltenen Laufzeitdateien verfügt.
Bekannte Probleme bei der behobenen Version
Derzeit kann die feste Version nicht über einen Netzwerkspeicherort oder UNC-Pfad ausgeführt werden.
Die Installation der festen Version der WebView2-Runtime auf dem Client führt dazu, dass Microsoft PlayReady nicht mehr funktioniert. Beheben Sie das PlayReady-Setup wie folgt:
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)
PlayReady sollte jetzt auf dem Gerät des Benutzers funktionieren.
Um zu bestätigen, dass PlayReady ordnungsgemäß installiert ist, stellen Sie auf der Registerkarte Sicherheit des Ordners Fixed Version sicher, dass Berechtigungen für
ALL APPLICATION PACKAGES
undALL RESTRICTED APPLICATION PACKAGES
erteilt werden, wie unten gezeigt:
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. 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)