Distribuer votre application et le runtime WebView2

Lorsque vous publiez une application qui utilise Microsoft Edge WebView2, vous devez distribuer le runtime WebView2, soit en distribuant le runtime evergreen automatiquement mis à jour, soit en distribuant une version fixe du runtime.

Une application WebView2 dépend du runtime WebView2 sur les machines clientes. Lorsque vous distribuez votre application WebView2, vous devez prendre en compte la façon dont le runtime WebView2 est distribué et mis à jour sur les ordinateurs clients.

The WebView2 Runtime

Le runtime WebView2 est un runtime redistribuable qui sert de plateforme web sous-jacente (ou de stockage) pour les applications WebView2. Le concept est similaire à Visual C++ ou au runtime .NET pour les applications C++/.NET. Le runtime WebView2 contient des fichiers binaires Microsoft Edge modifiés qui sont ajustés et testés pour les applications WebView2. Une fois le runtime WebView2 installé, il n’apparaît pas comme une application de navigateur visible par l’utilisateur. Par exemple, un utilisateur n’a pas de raccourci de bureau de navigateur ni d’entrée dans le menu Démarrer .

Il existe deux façons différentes de distribuer et de mettre à jour le runtime WebView2 sur les machines clientes : le mode de distribution Evergreen et le mode de distribution version fixe.

Mode de distribution Du runtime persistant

En mode de distribution Evergreen , le runtime WebView2 n’est pas empaqueté avec votre application, mais est initialement installé sur les clients à l’aide d’un programme d’amorçage en ligne ou d’un programme d’installation hors connexion. Par la suite, le runtime WebView2 est automatiquement mis à jour sur les ordinateurs clients. Vous pouvez ensuite distribuer les mises à jour de votre application WebView2 qui utilisent les dernières API WebView2, à partir du dernier Kit de développement logiciel (SDK) WebView2. Le mode de distribution Evergreen est recommandé pour la plupart des développeurs.

Avantages:

  • La plateforme web sous-jacente (Runtime WebView2) est automatiquement mise à jour sans effort supplémentaire de votre part.

  • Moins d’espace disque est nécessaire pour le runtime WebView2 sur les systèmes clients, car le runtime WebView2 est partagé par toutes les applications WebView2 qui se trouvent sur le client.

  • Sur les systèmes éligibles, les fichiers binaires pour Microsoft Edge et le runtime Evergreen WebView2 sont liés en dur lorsqu’ils se trouvent sur la même version. Cette liaison offre des avantages pour l’encombrement du disque, la mémoire et les performances.

Contre:

  • Votre application WebView2 ne peut pas spécifier qu’une version particulière du runtime WebView2 est requise.

Le runtime Evergreen est préinstallé sur tous les appareils Windows 11 dans le cadre du système d’exploitation Windows 11. Microsoft a installé le runtime WebView2 sur tous les appareils Windows 10 éligibles, comme décrit dans Remise de Microsoft Edge WebView2 Runtime à des appareils Windows 10 gérés. Même si votre application utilise le mode de distribution Evergreen, nous vous recommandons de distribuer le runtime WebView2 pour couvrir les cas périphériques où le runtime n’était pas déjà installé. Consultez Plus d’informations sur le mode de distribution du runtime persistant ci-dessous.

Mode de distribution du runtime version fixe

En mode de distribution Version fixe , vous téléchargez une version spécifique du runtime WebView2 et vous l’empaquetez avec votre application WebView2 dans votre package d’application. Le runtime WebView2 que vous empaquetez avec votre application est utilisé uniquement par votre application WebView2, et non par d’autres applications sur l’ordinateur du client.

Avantages:

  • Vous disposez d’un contrôle accru sur le contrôle de version du runtime WebView2. Vous savez quelles API WebView2 sont disponibles pour votre application, car vous contrôlez la version du runtime WebView2 disponible pour votre application. Votre application n’a pas besoin de tester si les DERNIÈRES API sont présentes.

Contre:

  • Vous devez gérer le runtime WebView2 vous-même. Le runtime WebView2 n’est pas automatiquement mis à jour sur les clients. Par conséquent, pour utiliser les dernières API WebView2, vous devez régulièrement mettre à jour votre application avec le runtime WebView2 mis à jour.

  • Plus d’espace disque est nécessaire sur le client, si plusieurs applications WebView2 sont installées.

  • Le runtime version fixe ne peut pas être installé à l’aide d’un programme d’installation.

Présentation des options de la page de téléchargement du runtime

La section Télécharger le runtime WebView2 de la page Microsoft Edge WebView2 fournit plusieurs options de distribution du runtime WebView2 sur les ordinateurs clients. Comprendre les options de cette page fournit une bonne introduction, pour vous aider à déterminer l’approche que vous souhaitez utiliser.

Options de distribution et de mise à jour du runtime WebView2

Le mode de distribution Evergreen est recommandé pour la plupart des applications.

  • La section Evergreen Bootstrapper de la page fournit un petit programme d’amorçage Evergreen Runtime qui s’exécute sur l’ordinateur client, pour les utilisateurs en ligne. Le programme d’amorçage télécharge et installe le runtime WebView2 Evergreen approprié sur le client. Vous pouvez utiliser le programme d’amorçage de deux façons différentes :

    • Créez un lien vers le programme d’amorçage à l’aide d’un lien que vous obtenez à partir du bouton Obtenir le lien . Votre application utilise ce lien pour télécharger par programmation le programme d’amorçage sur le client et appeler le programme d’amorçage. Cette approche évite d’avoir à empaqueter le programme d’amorçage avec votre application. Cette approche dépend du réseau de distribution de contenu (CDN) de Microsoft pour obtenir le programme d’amorçage.

    • Téléchargez le programme d’amorçage (à l’aide du bouton Télécharger dans la section Programme d’amorçage ), puis distribuez le programme d’amorçage avec votre application. Dans cette approche, vous empaquetez le programme d’amorçage avec votre programme d’installation/programme de mise à jour d’application ou avec votre application elle-même, puis vous appelez le programme d’amorçage que vous avez inclus dans votre application. Cette approche évite la dépendance vis-à-vis du CDN de Microsoft pour obtenir le programme d’amorçage.

  • La section Evergreen Standalone Installer de la page fournit un programme d’installation evergreen autonome volumineux, principalement pour les utilisateurs hors connexion. Dans cette approche, vous empaquetez le programme d’installation autonome avec votre programme d’installation/mise à jour d’application ou votre application elle-même, puis vous appelez le programme d’installation autonome Evergreen. Cette approche évite la dépendance vis-à-vis du CDN de Microsoft pour obtenir le runtime.

  • La section Version fixe de la page fournit un runtime version fixe, qui est une version spécifique du runtime WebView2 que vous distribuez avec votre application.

Détails sur le runtime WebView2

Lorsque vous distribuez votre application WebView2, assurez-vous que le runtime WebView2 est présent sur l’ordinateur client. Cette exigence s’applique aux modes de distribution Evergreen et Version fixe.

Si vous souhaitez utiliser le mode de distribution Version fixe, vous pouvez ignorer les deux sections suivantes et passer à Détails sur le mode de distribution du runtime version fixe.

Maintenance du runtime WebView2 via Windows Server Update Services (WSUS)

Consultez Windows Server Update Services (WSUS) dans Gestion d’entreprise des runtimes WebView2.

Prise en charge du runtime ou du navigateur pendant le développement ou la production

Pendant le développement et les tests, une application WebView2 peut utiliser l’une ou l’autre option comme plateforme web de stockage :

  • Runtime WebView2. Le runtime fournit généralement les mêmes fonctionnalités de plateforme web et la même cadence de mise à jour que le canal stable du navigateur Microsoft Edge. Utilisez le runtime WebView2 dans un environnement de production ou pour développer et tester la plateforme web dont disposent vos utilisateurs aujourd’hui.

  • Un canal de navigateur Microsoft Edge en préversion (Insider). Ces canaux de préversion de Microsoft Edge sont Bêta, Dev et Canary. Utilisez cette approche pour tester la compatibilité avant de votre application, afin de savoir si une modification cassant est en cours qui nécessite la mise à jour de votre application. Consultez Tester les API et fonctionnalités à venir.

Une version de production d’une application WebView2 peut uniquement utiliser le runtime WebView2 comme plateforme web de stockage, et non Microsoft Edge.

Le canal stable Microsoft Edge n’est pas pris en charge pour WebView2

Les applications WebView2 ne sont pas autorisées à utiliser le canal Stable de Microsoft Edge comme plateforme web de stockage. Cette restriction empêche une version de production d’une application WebView2 de dépendre du navigateur. Une application WebView2 ne peut pas dépendre du navigateur pendant la production, pour les raisons suivantes :

  • Il n’est pas garanti que Microsoft Edge soit présent sur tous les appareils des utilisateurs. De nombreux appareils dans les entreprises et dans l’éducation sont déconnectés de Windows Update ou ne sont pas gérés directement par Microsoft. Microsoft Edge n’est peut-être pas installé sur ces appareils. Exiger que la version de production des applications WebView2 utilise le runtime WebView2 plutôt que Microsoft Edge évite de faire de Microsoft Edge un prérequis pour l’exécution d’une application WebView2.

  • Les navigateurs et les applications ont des cas d’usage différents. Si une application WebView2 exige la présence de Microsoft Edge sur le client, cela aurait potentiellement des effets secondaires involontaires sur l’application WebView2. Par exemple, un administrateur informatique peut empêcher la mise à jour du navigateur à partir d’une version spécifique, afin que le navigateur reste compatible avec un site web interne. Exiger que la version de production d’une application WebView2 utilise le runtime WebView2 plutôt que le navigateur permet à l’application WebView2 de rester persistante même si les mises à jour du navigateur sont empêchées par l’administrateur du client.

  • Contrairement au navigateur, le runtime WebView2 est développé et testé pour les scénarios d’application et, dans certains cas, le runtime WebView2 peut inclure des correctifs de bogues qui ne sont pas encore disponibles dans le navigateur.

Le runtime Evergreen WebView2 sera inclus dans le système d’exploitation Windows 11. Diverses applications WebView2 ont installé le runtime Evergreen sur les appareils dotés d’un système d’exploitation avant Windows 11. Toutefois, certains appareils peuvent ne pas avoir le runtime préinstallé. Il est donc recommandé de case activée si le runtime est présent sur le client.

Avant que votre application ne crée un WebView2, l’application doit case activée si le runtime WebView2 est présent (en vérifiant une clé de Registre ou en appelant une API) et installer le runtime s’il est manquant. L’application peut le faire case activée lors de l’installation ou de la mise à jour de votre application (recommandé), ou lors de l’exécution de l’application. Pour case activée si le runtime est présent, consultez Déploiement du runtime Evergreen WebView2, ci-dessous.

Détails sur le mode de distribution Du runtime persistant

Le mode de distribution Evergreen garantit que votre application WebView2 tire parti des dernières fonctionnalités WebView2 et des dernières mises à jour de sécurité. Le mode de distribution Evergreen présente les caractéristiques suivantes :

  • Le runtime WebView2 se met à jour automatiquement sans aucune action de votre part. Il reçoit les mêmes mises à jour Microsoft Edge que celles décrites dans Notes de publication pour le canal stable Microsoft Edge et Notes de publication pour microsoft Edge Security Mises à jour.

  • Toutes les applications WebView2 qui utilisent le mode de distribution Evergreen utilisent une copie partagée du runtime Evergreen WebView2, ce qui permet d’économiser de l’espace disque.

  • Sur les systèmes éligibles, les fichiers binaires pour Microsoft Edge et le runtime Evergreen WebView2 sont liés en dur lorsqu’ils se trouvent sur la même version. Cette liaison offre des avantages pour l’encombrement du disque, la mémoire et les performances.

Lorsque vous utilisez le mode de distribution Evergreen du runtime WebView2, votre application WebView2 suppose que les clients disposent du runtime le plus récent. Votre application ne peut pas nécessiter une version particulière du runtime WebView2 pour toutes les applications sur le client. Au moment de la publication d’un nouveau package sdk WebView2, une version compatible du runtime WebView2 a déjà été distribuée aux clients. Par conséquent, votre application WebView2 peut utiliser les API qui se trouvent dans la dernière version du Kit de développement logiciel (SDK) WebView2.

La grande majorité des appareils Windows 10 disposent déjà du runtime WebView2, comme décrit dans Livraison du runtime Microsoft Edge WebView2 aux appareils Windows 10 gérés. Un petit nombre d’appareils Windows 10 n’ont pas installé le runtime WebView2. Nous vous recommandons de gérer ce cas de périphérie en utilisant l’une des approches suivantes :

  • Déployez par programmation le runtime Evergreen avec votre application. Consultez Déploiement du runtime Evergreen WebView2 ci-dessous.

  • Redirigez vos utilisateurs finaux vers le site Microsoft : téléchargez Microsoft Edge WebView2 et faites en charge aux utilisateurs finaux de télécharger le programme d’installation d’Evergreen WebView2 Runtime à partir du site et d’installer le runtime eux-mêmes.

Voir aussi :

Déploiement du runtime Evergreen WebView2

Une seule installation du runtime Evergreen WebView2 est nécessaire pour toutes les applications Evergreen sur l’appareil. Plusieurs outils sont disponibles dans Télécharger le runtime WebView2 pour vous aider à déployer le runtime Evergreen.

  • Pour les clients en ligne : le programme d’amorçage du runtime WebView2 est un programme d’installation minuscule (environ 2 Mo). Le programme d’amorçage webView2 Runtime télécharge et installe le runtime Evergreen à partir de serveurs Microsoft qui correspond à l’architecture de l’appareil de l’utilisateur.

    • Dans la partie d’installation de votre application WebView2, créez un lien vers le programme d’amorçage. Utilisez un lien pour télécharger par programme le programme d’amorçage ; sélectionnez le bouton Obtenir le lien dans la page de téléchargement ci-dessus.

    • Vous pouvez également télécharger le programme d’amorçage et l’empaqueter avec votre application WebView2.

  • Pour les clients hors connexion : Le programme d’installation autonome du runtime WebView2 est un programme d’installation complet qui installe le runtime WebView2 Evergreen dans des environnements hors connexion.

  • Si vous utilisez le programme d’installation d’application pour déployer des applications MSIX, vous pouvez spécifier le runtime WebView2 en tant que dépendance, afin qu’il soit installé avec l’application.Pour plus d’informations sur la procédure à suivre, consultez win32dependencies :ExternalDependency (Windows 10, Windows 11) dans la documentation du manifeste du package d’application. Voir aussi Installer Windows 10 applications avec le programme d’installation d’application.

Installation du runtime par ordinateur ou par utilisateur

Le programme d’amorçage et le programme d’installation autonome les plus récents prennent en charge les installations par ordinateur et par utilisateur du runtime WebView2.

Si vous exécutez le programme d’installation à partir d’un processus avec élévation de privilèges ou d’une invite de commandes, le runtime est installé par ordinateur. Si vous n’exécutez pas le programme d’installation à partir d’un processus avec élévation de privilèges ou d’une invite de commandes, le runtime est installé par utilisateur. Toutefois, une installation par utilisateur est automatiquement remplacée par une installation par ordinateur , si un Microsoft Edge Updater par ordinateur est en place. Microsoft Edge Updater par machine est inclus dans Microsoft Edge, à l’exception du canal d’évaluation Canary de Microsoft Edge.

Utilisez le workflow de déploiement en ligne ou le workflow de déploiement hors connexion suivant pour vous assurer que le runtime est déjà installé avant le lancement de votre application. Vous pouvez ajuster votre workflow en fonction de votre scénario. Un exemple de code est disponible dans le référentiel Exemples.

Détecter si un runtime WebView2 approprié est déjà installé

Pour vérifier qu’un runtime WebView2 est installé, utilisez l’une des approches suivantes :

  • Approche 1 : Inspectez la pv (REG_SZ) clé de registre du runtime WebView2 aux deux emplacements de Registre suivants. La HKEY_LOCAL_MACHINE clé d’enregistrement est utilisée pour l’installation par ordinateur . La HKEY_CURRENT_USER clé d’enregistrement est utilisée pour l’installation par utilisateur .

    Pour les applications WebView2, au moins l’une de ces clés de registre doit être présente et définie avec une version supérieure à 0.0.0.0. Si aucune clé de registre n’existe, ou si une seule de ces clés de registre existe mais que sa valeur est null, une chaîne vide ou 0.0.0.0, cela signifie que le runtime WebView2 n’est pas installé sur le client. Inspectez ces clés de registre pour détecter si le runtime WebView2 est installé et pour obtenir la version du runtime WebView2. Recherchez pv (REG_SZ) aux deux emplacements suivants.

    Les deux emplacements du Registre à inspecter sur Windows 64 bits :

    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}
    

    Les deux emplacements du Registre à inspecter sur Windows 32 bits :

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
    
    HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
    
  • Approche 2 : exécutez GetAvailableCoreWebView2BrowserVersionString et évaluez si est versionInfonullptr. nullptr indique que le runtime WebView2 n’est pas installé. Cette API retourne des informations de version pour le runtime WebView2 ou pour tous les canaux en préversion installés de Microsoft Edge (bêta, dev ou canary).

Déploiement en ligne uniquement

Si vous avez un scénario de déploiement en ligne uniquement où les utilisateurs sont supposés avoir accès à Internet, utilisez le workflow suivant.

  1. Pendant l’installation de votre application, exécutez un test pour vous assurer que le runtime WebView2 est déjà installé. Consultez Détecter si un runtime WebView2 approprié est déjà installé.

  2. Si le runtime n’est pas installé, dans le processus de configuration de votre application, utilisez le lien (à partir du bouton Obtenir le lien sur la page de téléchargement) pour télécharger par programme le programme d’amorçage du runtime WebView2.

  3. Appelez le programme d’amorçage du runtime WebView2 en émettant la commande suivante.

    Si vous exécutez la commande suivante à partir d’un processus avec élévation de privilèges ou d’une invite de commandes, elle déclenche une installation par ordinateur . Si vous n’exécutez pas la commande à partir d’un processus avec élévation de privilèges ou d’une invite de commandes, une installation par utilisateur a lieu. Toutefois, une installation par utilisateur est automatiquement remplacée par une installation par ordinateur , si un Microsoft Edge Updater par ordinateur est en place. Microsoft Edge Updater par machine est fourni dans le cadre de Microsoft Edge, à l’exception du canal d’évaluation Canary de Microsoft Edge. Pour plus d’informations, consultez Installation du runtime par ordinateur ou par utilisateur.

    MicrosoftEdgeWebview2Setup.exe /silent /install
    

Le workflow ci-dessus présente plusieurs avantages :

  • Le runtime est installé uniquement lorsque cela est nécessaire.

  • Vous n’êtes pas obligé d’empaqueter un programme d’installation runtime avec votre application WebView2.

  • Le programme d’amorçage WebView2 Runtime détecte automatiquement l’architecture (plateforme) de l’appareil, puis installe le runtime WebView2 correspondant.

  • Le runtime est installé en mode silencieux.

Sinon, au lieu de télécharger par programmation le programme d’amorçage à la demande en obtenant un lien, comme indiqué ci-dessus, vous pouvez empaqueter le programme d’amorçage Evergreen pour le runtime WebView2 avec votre application.

Déploiement hors connexion

Si vous avez un scénario de déploiement hors connexion, où le déploiement d’applications doit fonctionner entièrement hors connexion, utilisez le workflow suivant.

  1. Téléchargez le programme d’installation autonome Evergreen à partir de Télécharger le runtime WebView2 sur votre ordinateur de développement. Le programme d’installation autonome Evergreen installe webView2 Evergreen Runtime sur le client.

  2. Incluez le programme d’installation autonome Evergreen dans le programme d’installation ou la mise à jour de votre application.

  3. Pendant l’installation de votre application, exécutez un test pour vous assurer que le runtime WebView2 est déjà installé. Consultez Détecter si un runtime WebView2 approprié est déjà installé.

  4. Si le runtime WebView2 n’est pas installé, exécutez le programme d’installation autonome Evergreen. Si vous souhaitez exécuter une installation sans assistance, vous pouvez exécuter la commande suivante.

    Si vous exécutez la commande suivante à partir d’un processus avec élévation de privilèges ou d’une invite de commandes, elle déclenche une installation par ordinateur . Si vous n’exécutez pas la commande à partir d’un processus avec élévation de privilèges ou d’une invite de commandes, une installation par utilisateur a lieu. Toutefois, une installation par utilisateur est automatiquement remplacée par une installation par ordinateur , si un Microsoft Edge Updater par ordinateur est en place. Microsoft Edge Updater par machine est fourni dans le cadre de Microsoft Edge, à l’exception du canal d’évaluation Canary de Microsoft Edge. Pour plus d’informations, consultez Installation du runtime par ordinateur ou par utilisateur.

    MicrosoftEdgeWebView2RuntimeInstaller{X64/X86/ARM64}.exe /silent /install
    

Tester la compatibilité avant de votre application

Le Web est en constante évolution. En mode de distribution Evergreen, le runtime WebView2 est automatiquement mis à jour sur le client pour fournir les dernières fonctionnalités et correctifs de sécurité. Si vous utilisez la distribution Evergreen, pour vous assurer que votre application WebView2 reste compatible avec le web, vous devez configurer l’infrastructure de test.

Les canaux de préversion De Microsoft Edge (Bêta, Dev et Canary) fournissent un aperçu des prochaines nouveautés du runtime WebView2. Testez régulièrement votre application WebView2 par rapport à un canal microsoft Edge en préversion, puis mettez à jour votre application ou signalez des problèmes si des problèmes surviennent. Canary est le canal d’évaluation recommandé, car il est livré à la cadence la plus rapide et dispose des API les plus récentes.

Pour vous aider à choisir le canal approprié, consultez Vue d’ensemble des canaux Microsoft Edge. Vous pouvez télécharger les canaux Microsoft Edge Insider sur votre environnement de test et utiliser regkey des variables d’environnement ou pour indiquer la préférence de canal pour votre application de test.

Consultez CreateCoreWebView2EnvironmentWithOptions. Vous pouvez également utiliser WebDriver pour automatiser les tests WebView2, comme décrit dans Automatiser et tester WebView2 avec Microsoft Edge WebDriver.

Détection des fonctionnalités lors de l’utilisation d’API récentes

Si vous utilisez le mode Evergreen, lorsque votre application WebView2 utilise une nouvelle API WebView2 à partir d’un sdk récent, vous devez utiliser une approche telle que QueryInterface ou try-catch pour vous assurer que la nouvelle API est présente sur l’ordinateur du client. Cette fonctionnalité de détection est une bonne pratique, car il existe des cas où le runtime WebView2 n’est pas mis à jour.

Même si vous utilisez le mode de distribution Evergreen, le runtime WebView2 peut ne pas être mis à jour, pour les raisons suivantes :

  • Un Administration informatique peut désactiver les mises à jour du runtime WebView2, car un Administration a le contrôle de la mise à jour de ses appareils.

  • Les clients hors connexion ne reçoivent pas le runtime WebView2 mis à jour.

Les stratégies de mise à jour pour Microsoft Edge et le runtime WebView2 sont distinctes. Même si le Administration informatique a désactivé les mises à jour automatiques de Microsoft Edge, le runtime WebView2 est toujours mis à jour automatiquement, sauf si le Administration désactive la mise à jour du runtime. Si le Administration désactive la mise à jour de Microsoft Edge (ce qui est assez courant), cela n’affecte pas les API WebView2 disponibles sur l’ordinateur client.

Consultez Détection de fonctionnalités pour tester si le runtime installé prend en charge les API récemment ajoutées.

Détails sur le mode de distribution du runtime version fixe

Pour les environnements contraints avec des exigences de compatibilité strictes, envisagez d’utiliser le mode de distribution Version fixe. Le mode de distribution Version fixe était précédemment appelé bring-your-own.

En mode de distribution Version fixe, vous contrôlez le minutage des mises à jour du runtime WebView2 pour votre application. Vous téléchargez une version spécifique du runtime WebView2, puis vous l’empaquetez avec votre application WebView2. Le runtime WebView2 sur le client n’est pas automatiquement mis à jour. Au lieu de cela, vous mettez régulièrement à jour le runtime WebView2 qui est empaqueté et distribué avec votre application mise à jour. L’approche version fixe n’utilise pas de clé de Registre pour le runtime WebView2.

Les fichiers binaires version fixe ont une taille supérieure à 250 Mo et augmenteront votre package d’application d’une telle taille.

Pour utiliser le mode de distribution Version fixe :

  1. Téléchargez la version fixe du runtime WebView2 à partir de Télécharger le runtime WebView2, en tant que package.

    La version la plus corrigée des versions majeures les plus récentes et les deuxièmes versions majeures est disponible en téléchargement sur ce site. Conservez une copie archivée des versions dont vous avez besoin.

  2. Décompressez le package WebView2 Runtime à l’aide de la commande expand {path to the package} -F:* {path to the destination folder} de ligne de commande ou d’un outil de décompression tel que WinRAR. Évitez de décompresser via Explorateur de fichiers, car cette approche risque de ne pas générer la structure de dossiers correcte.

  3. Incluez tous les fichiers binaires version fixe décompressés dans votre package d’application, à déployer sur l’ordinateur cible pendant l’installation de votre application.

  4. Indiquez le chemin des fichiers binaires version fixe lors de la création de l’environnement WebView2.

    • Pour Win32 C/C++, vous pouvez créer l’environnement à l’aide de la fonction CreateCoreWebView2EnvironmentWithOptions . Utilisez le browserExecutableFolder paramètre pour indiquer le chemin d’accès au dossier qui contient msedgewebview2.exe.

    • Pour .NET, vous devez spécifier l’environnement avant que la propriété WebView2 Source prenne effet. Pour .NET, vous pouvez utiliser l’une des approches suivantes pour spécifier l’environnement :

      • Définissez la CreationProperties propriété (WPF/WinForms) sur l’élément WebView2 . Utilisez le BrowserExecutableFolder membre dans la CoreWebView2CreationProperties classe (WPF/WinForms) pour indiquer le chemin d’accès aux fichiers binaires version fixe.

      • Vous pouvez également utiliser EnsureCoreWebView2Async (WPF/WinForms) pour spécifier l’environnement. Utilisez le browserExecutableFolder paramètre dans CoreWebView2Environment.CreateAsync pour indiquer le chemin d’accès aux fichiers binaires version fixe.

    • Pour WinUI, vérifiez que l’application a accès au dossier en spécifiant l’emplacement installé et en définissant la variable d’environnement pour le chemin d’exécution. Pour ce faire, ajoutez le code C# suivant à votre application :

      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. Empaquetez et expédiez les fichiers binaires de version fixe avec votre application. Mettez à jour les fichiers binaires comme il convient.

    • Pour WinUI, cela peut inclure l’ouverture du fichier projet (.csproj) dans un éditeur de code, puis l’ajout du code suivant dans les balises du projet :

      <ItemGroup>
         <Content Include="FixedRuntime\(version number)\\**\*.*">
         <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
         </Content>
      </ItemGroup>
      

      Vérifiez que le bin\**designated architecture**\Release dossier a un dossier FixedRuntime\(numéro de version) correspondant avec les fichiers runtime qu’il contient.

  6. Sur Windows 10 appareils, à compter de la version 120 fixe, les développeurs d’applications Win32 non empaquetées utilisant la version fixe doivent exécuter les commandes suivantes pour que la version fixe continue de fonctionner. Cela est dû à une amélioration de la sécurité dans la version 120 pour exécuter le processus Renderer dans le conteneur d’application. Cette modification n’affecte pas les appareils Windows 11, l’ancien runtime ou les applications empaquetées.

    1. Recherchez le chemin d’accès où vous déployez le package Version fixe sur l’appareil de l’utilisateur, par exemple l’emplacement suivant :

      D:\myapp\Microsoft.WebView2.FixedVersionRuntime.87.0.664.8.x64
      
    2. Exécutez les commandes suivantes sur l’appareil de l’utilisateur :

      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. Vérifiez que les autorisations sont accordées pour ALL APPLICATION PACKAGES et ALL RESTRICTED APPLICATION PACKAGES dans l’onglet Sécurité du dossier Version fixe , comme indiqué ci-dessous :

      Autorisation pour PlayReady

Problèmes connus pour la version corrigée

  • Actuellement, la version fixe ne peut pas être exécutée à partir d’un emplacement réseau ou d’un chemin UNC.

Fichiers à expédier avec l’application

Le WebView2Loader code doit être fourni avec l’application. Pour ce faire, vous pouvez établir une liaisonWebView2Loader.lib statique dans les fichiers binaires de l’application ou inclure le WebView2Loader.dll qui correspond à l’architecture de l’application. En règle générale, Visual Studio gère automatiquement ce problème lorsque vous utilisez le .targets fichier dans le Kit de développement logiciel (SDK) WebView2, mais il peut arriver que vous deviez spécifier manuellement les fichiers à publier avec votre application.

WebView2Loader.dll étant un binaire natif et spécifique à l’architecture, vous devez inclure toutes les versions de ce fichier binaire dans lesquelles vous vous attendez à ce que votre application s’exécute. Par exemple :

  • Pour x86, vous devez inclure la version x86 de WebView2Loader.dll.

  • Pour une application managée utilisant AnyCPU, vous devez inclure les versions x86, x64 et arm64 de WebView2Loader.dll. La version correcte de WebView2Loader.dll est chargée à partir du dossier spécifique à l’architecture approprié.

Exemple de structure de dossiers d’application native :

\<myApp>
    \WebView2Loader.dll

Pour les applications managées .NET, vous devez également inclure les assemblys .NET WebView2 pour la fonctionnalité WebView2 de base (Microsoft.Web.WebView2.Core.dll) et pour les fonctionnalités spécifiques à WPF/WinForms (Microsoft.Web.WebView2.Winforms.dll ou Microsoft.Web.WebView2.WPF.dll).

Exemple de structure de dossiers d’application managée :

\<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)