Distribución de la aplicación y el entorno de ejecución de WebView2

Al publicar una aplicación que usa Microsoft Edge WebView2, debe distribuir el entorno de ejecución de WebView2, ya sea distribuyendo el runtime evergreen actualizado automáticamente o distribuyendo una versión fija del runtime.

Una aplicación WebView2 depende del entorno de ejecución de WebView2 en las máquinas cliente. Al distribuir la aplicación WebView2, debe tener en cuenta cómo se distribuye y actualiza el entorno de ejecución de WebView2 en las máquinas cliente.

El entorno de ejecución de WebView2

WebView2 Runtime es un entorno de ejecución redistribuible y actúa como plataforma web subyacente (o de respaldo) para aplicaciones WebView2. El concepto es similar a Visual C++ o .NET Runtime para aplicaciones de C++/.NET. El entorno de ejecución de WebView2 contiene archivos binarios modificados de Microsoft Edge que están optimizados y probados para las aplicaciones WebView2. Una vez instalado el entorno de ejecución de WebView2, no aparece como una aplicación de explorador visible por el usuario. Por ejemplo, un usuario no tiene un acceso directo al escritorio del explorador ni una entrada en el menú Inicio .

Hay dos maneras diferentes de distribuir y actualizar el entorno de ejecución de WebView2 a las máquinas cliente: el modo de distribución Evergreen y el modo de distribución versión fija.

Modo de distribución de Evergreen Runtime

En el modo de distribución Evergreen , el runtime de WebView2 no se empaqueta con la aplicación, pero se instala inicialmente en los clientes mediante un programa previo en línea o un instalador sin conexión. Después, el entorno de ejecución de WebView2 se actualiza automáticamente en las máquinas cliente. A continuación, puede distribuir las actualizaciones de la aplicación WebView2 que usan las API de WebView2 más recientes, desde el SDK de WebView2 más reciente. El modo de distribución Evergreen se recomienda para la mayoría de los desarrolladores.

Pros:

  • La plataforma web subyacente (WebView2 Runtime) se actualiza automáticamente sin más esfuerzo por su parte.

  • Se requiere menos espacio en disco para el entorno de ejecución de WebView2 en los sistemas cliente, ya que el entorno de ejecución de WebView2 lo comparten todas las aplicaciones WebView2 que están en el cliente.

  • En los sistemas aptos, los archivos binarios de Microsoft Edge y Evergreen WebView2 Runtime se vinculan de forma rígida cuando se encuentran en la misma versión. Esta vinculación proporciona ventajas para la superficie del disco, la memoria y el rendimiento.

Contras:

  • La aplicación WebView2 no puede especificar que se requiera una versión determinada del entorno de ejecución de WebView2.

dispositivos Windows 11 y dispositivos de Windows 10

Evergreen Runtime está preinstalado en todos los dispositivos Windows 11 como parte del sistema operativo Windows 11. Microsoft instaló webView2 Runtime en todos los dispositivos de Windows 10 aptos, tal como se describe en Entrega de Microsoft Edge WebView2 Runtime a dispositivos Windows 10 administrados. Incluso si la aplicación usa el modo de distribución Evergreen, se recomienda distribuir El entorno de ejecución de WebView2 para cubrir los casos perimetrales en los que el entorno de ejecución aún no estaba instalado. Consulte los detalles sobre el modo de distribución evergreen runtime a continuación.

Modo de distribución en tiempo de ejecución de versión fija

En el modo de distribución Versión fija , descarga una versión específica de WebView2 Runtime y la empaqueta junto con la aplicación WebView2 en el paquete de la aplicación. WebView2 Runtime que empaqueta con la aplicación solo lo usa la aplicación WebView2, no ninguna otra aplicación en el equipo del cliente.

Pros:

  • Tiene más control sobre el control de versiones de WebView2 Runtime. Sabe qué API de WebView2 están disponibles para la aplicación, ya que controla qué versión del entorno de ejecución de WebView2 está disponible para la aplicación. La aplicación no necesita probar si las API más recientes están presentes.

Contras:

  • Debe administrar webView2 Runtime usted mismo. El entorno de ejecución de WebView2 no se actualiza automáticamente en los clientes, por lo que para usar las API de WebView2 más recientes, debe actualizar periódicamente la aplicación junto con el entorno de ejecución de WebView2 actualizado.

  • Se requiere más espacio en disco en el cliente, si hay varias aplicaciones WebView2 instaladas.

  • El tiempo de ejecución de la versión fija no se puede instalar mediante un instalador.

Descripción de las opciones en la página de descarga en tiempo de ejecución

La sección Descargar el entorno de ejecución de WebView2 de la página WebView2 de Microsoft Edge proporciona varias opciones para distribuir el entorno de ejecución de WebView2 en máquinas cliente. Comprender las opciones de esta página proporciona una buena introducción para ayudar a decidir qué enfoque desea usar.

Opciones para distribuir y actualizar el entorno de ejecución de WebView2

El modo de distribución Evergreen se recomienda para la mayoría de las aplicaciones.

  • La sección Evergreen Bootstrapper de la página proporciona un pequeño programa previo evergreen runtime que se ejecuta en la máquina cliente, para los usuarios en línea. El programa previo descarga e instala el runtime de Evergreen WebView2 adecuado en el cliente. Puede usar el programa previo de dos maneras diferentes:

    • Vincule al programa previo mediante un vínculo que obtenga del botón Obtener el vínculo . La aplicación usa este vínculo para descargar mediante programación el programa previo en el cliente e invocar el programa previo. Este enfoque evita la necesidad de empaquetar el programa previo con la aplicación. Este enfoque depende de la red de entrega de contenido (CDN) de Microsoft para obtener el programa previo.

    • Descargue el programa previo (con el botón Descargar de la sección Bootstrapper ) y, a continuación, distribuya el programa previo con la aplicación. En este enfoque, empaqueta el programa previo con el instalador o actualizador de la aplicación o con la propia aplicación e invoca el programa previo que incluyó con la aplicación. Este enfoque evita la dependencia de la red CDN de Microsoft para obtener el programa previo.

  • La sección Evergreen Standalone Installer (Instalador independiente de Evergreen ) de la página proporciona un instalador evergreen grande e independiente, principalmente para usuarios sin conexión. En este enfoque, empaqueta el instalador independiente con el instalador o el actualizador de aplicaciones o la propia aplicación e invoca al instalador independiente evergreen. Este enfoque evita la dependencia de la red CDN de Microsoft para obtener el entorno de ejecución.

  • La sección Versión fija de la página proporciona un entorno de ejecución de versión fija, que es una versión específica del entorno de ejecución de WebView2 que se distribuye junto con la aplicación.

Detalles sobre el entorno de ejecución de WebView2

Al distribuir la aplicación WebView2, asegúrese de que el entorno de ejecución de WebView2 está presente en el equipo cliente. Este requisito se aplica a los modos de distribución Evergreen y Fixed Version.

Si desea usar el modo de distribución Versión fija, puede omitir el siguiente par de secciones y pasar a Detalles sobre el modo de distribución en tiempo de ejecución de versión fija.

Mantenimiento del entorno de ejecución de WebView2 a través de Windows Server Update Services (WSUS)

Consulte Windows Server Update Services (WSUS) en Administración empresarial de entornos de ejecución de WebView2.

Compatibilidad con el explorador o en tiempo de ejecución durante el desarrollo o la producción

Durante el desarrollo y las pruebas, una aplicación WebView2 puede usar cualquiera de las opciones como plataforma web de respaldo:

  • El entorno de ejecución de WebView2. En tiempo de ejecución, por lo general, se proporcionan las mismas funcionalidades de plataforma web y cadencia de actualización que el canal Estable del explorador Microsoft Edge. Use el entorno de ejecución WebView2 en un entorno de producción o para desarrollar y probar en la plataforma web que los usuarios tienen actualmente.

  • Un canal del explorador Microsoft Edge de versión preliminar (Insider). Estos canales de versión preliminar de Microsoft Edge son Beta, Dev y Canary. Usa este enfoque para probar la compatibilidad con el reenvío de la aplicación, de modo que sepas si se produce un cambio importante que requerirá la actualización de la aplicación. Consulte Probar las próximas API y características.

Una versión de producción de una aplicación WebView2 solo puede usar WebView2 Runtime como plataforma web de respaldo, no Microsoft Edge.

El canal estable de Microsoft Edge no es compatible con WebView2

Las aplicaciones WebView2 no pueden usar el canal estable de Microsoft Edge como plataforma web de respaldo. Esta restricción impide que una versión de producción de una aplicación WebView2 tome una dependencia en el explorador. Una aplicación WebView2 no puede tomar una dependencia en el explorador durante la producción, por los siguientes motivos:

  • No se garantiza que Microsoft Edge esté presente en todos los dispositivos de usuario. Muchos dispositivos de las empresas y de la educación se desconectan de Windows Update o microsoft no los administra directamente. Es posible que estos dispositivos no tengan instalado Microsoft Edge. Requerir la versión de producción de las aplicaciones WebView2 para usar el entorno de ejecución de WebView2 en lugar de Microsoft Edge evita que Microsoft Edge sea un requisito previo para ejecutar una aplicación WebView2.

  • Los exploradores y las aplicaciones tienen diferentes casos de uso. Si una aplicación WebView2 requiere la presencia de Microsoft Edge en el cliente, podría tener efectos secundarios no deseados en la aplicación WebView2. Por ejemplo, un administrador de TI puede impedir que el explorador se actualice desde una versión específica para mantener el explorador compatible con un sitio web interno. Requerir la versión de producción de una aplicación WebView2 para usar el entorno de ejecución de WebView2 en lugar del explorador permite que la aplicación WebView2 permanezca perenne incluso si el administrador de los clientes impide las actualizaciones del explorador.

  • A diferencia del explorador, el entorno de ejecución de WebView2 se desarrolla y prueba para escenarios de aplicación y, en algunos casos, el entorno de ejecución de WebView2 puede incluir correcciones de errores que aún no están disponibles en el explorador.

El runtime de Evergreen WebView2 se incluirá como parte del sistema operativo Windows 11. Varias aplicaciones WebView2 han instalado Evergreen Runtime en dispositivos con un sistema operativo antes de Windows 11. Sin embargo, es posible que algunos dispositivos no tengan el runtime preinstalado, por lo que se recomienda comprobar si el runtime está presente en el cliente.

Antes de que la aplicación cree un WebView2, la aplicación debe comprobar si el entorno de ejecución de WebView2 está presente (ya sea comprobando una clave del Registro o llamando a una API) e instalar el runtime si falta. La aplicación puede realizar esta comprobación al instalar o actualizar la aplicación (recomendado) o en tiempo de ejecución de la aplicación. Para comprobar si el entorno de ejecución está presente, consulte Deploying the Evergreen WebView2 Runtime (Implementación del runtime de Evergreen WebView2) a continuación.

Detalles sobre el modo de distribución evergreen runtime

El modo de distribución Evergreen garantiza que la aplicación WebView2 aproveche las últimas características y actualizaciones de seguridad de WebView2. El modo de distribución Evergreen tiene las siguientes características:

  • WebView2 Runtime se actualiza automáticamente sin necesidad de ninguna acción por su parte. Recibe las mismas actualizaciones de Microsoft Edge que se describen en las notas de la versión para el canal estable de Microsoft Edge y las notas de la versión de seguridad de Microsoft Edge Novedades.

  • Todas las aplicaciones WebView2 que usan el modo de distribución Evergreen usan una copia compartida del runtime de Evergreen WebView2, lo que ahorra espacio en disco.

  • En los sistemas aptos, los archivos binarios de Microsoft Edge y Evergreen WebView2 Runtime se vinculan de forma rígida cuando se encuentran en la misma versión. Esta vinculación proporciona ventajas para la superficie del disco, la memoria y el rendimiento.

Cuando se usa el modo de distribución Evergreen del entorno de ejecución de WebView2, la aplicación WebView2 supone que los clientes tienen el entorno de ejecución más reciente. La aplicación no puede requerir una versión determinada de WebView2 Runtime para todas las aplicaciones del cliente. En el momento en que se publica un nuevo paquete del SDK de WebView2, ya se ha distribuido a los clientes una versión compatible del entorno de ejecución de WebView2. Por lo tanto, es correcto que la aplicación WebView2 use las API que se encuentran en la versión más reciente del SDK de WebView2.

dispositivos Windows 11 y dispositivos de Windows 10 (detalles)

La gran mayoría de los dispositivos de Windows 10 ya tienen instalado el entorno de ejecución WebView2, como se describe en Entrega de Microsoft Edge WebView2 Runtime a dispositivos Windows 10 administrados. Un pequeño número de dispositivos Windows 10 no tienen instalado el entorno de ejecución webView2. Se recomienda controlar este caso perimetral mediante cualquiera de los siguientes enfoques:

Vea también:

Implementación del runtime de Evergreen WebView2

Solo se necesita una instalación del runtime de Evergreen WebView2 para todas las aplicaciones evergreen del dispositivo. Hay varias herramientas disponibles en Download the WebView2 Runtime (Descargar el entorno de ejecución de WebView2 ) para ayudarle a implementar evergreen runtime.

  • Para clientes en línea: WebView2 Runtime Bootstrapper es un instalador pequeño (aproximadamente 2 MB). El programa previo en tiempo de ejecución WebView2 descarga e instala evergreen runtime desde servidores de Microsoft que coinciden con la arquitectura de dispositivo del usuario.

    • En la parte de configuración de la aplicación WebView2, vincule al programa previo. Use un vínculo para descargar mediante programación el programa previo; seleccione el botón Obtener el vínculo en la página de descarga anterior.

    • También puede descargar el programa previo y empaquetarlo con la aplicación WebView2.

  • Para clientes sin conexión: El instalador independiente en tiempo de ejecución de WebView2 es un instalador completo que instala el runtime de Evergreen WebView2 en entornos sin conexión.

  • Si usa el Instalador de aplicaciones para implementar aplicaciones MSIX, puede especificar el entorno de ejecución de WebView2 como una dependencia para que se instale con la aplicación. Para obtener más información sobre cómo hacerlo, consulte win32dependencies:ExternalDependency (Windows 10, Windows 11) en los documentos del manifiesto del paquete de la aplicación. Consulte también Instalación de aplicaciones Windows 10 con el Instalador de aplicaciones.

Instalación del entorno de ejecución por máquina o por usuario

El programa previo más reciente y el instalador independiente admiten las instalaciones por máquina y por usuario del entorno de ejecución de WebView2.

Si ejecuta el instalador desde un símbolo del sistema o un proceso con privilegios elevados, el entorno de ejecución se instala como por máquina. Si no ejecuta el instalador desde un proceso con privilegios elevados o desde un símbolo del sistema, el runtime se instalará como por usuario. Sin embargo, una instalación por usuario se reemplaza automáticamente por una instalación por máquina , si existe un actualizador de Microsoft Edge por máquina . Se incluye un actualizador de Microsoft Edge por máquina como parte de Microsoft Edge, excepto para el canal de vista previa canary de Microsoft Edge.

Use el siguiente flujo de trabajo de implementación en línea o flujo de trabajo de implementación sin conexión para asegurarse de que el entorno de ejecución ya está instalado antes de que se inicie la aplicación. Puede ajustar el flujo de trabajo en función de su escenario. El código de ejemplo está disponible en el repositorio Ejemplos.

Detectar si un entorno de ejecución de WebView2 ya está instalado

Para comprobar que está instalado un entorno de ejecución de WebView2, use uno de los siguientes enfoques:

  • Enfoque 1: inspeccione la pv (REG_SZ) clave regkey del entorno de ejecución de WebView2 en las dos ubicaciones del Registro siguientes. La HKEY_LOCAL_MACHINE clave reg se usa para la instalación por máquina . La HKEY_CURRENT_USER clave reg se usa para la instalación por usuario .

    Para las aplicaciones WebView2, al menos una de estas claves reg debe estar presente y definida con una versión mayor que 0.0.0.0. Si no existe ninguna regkey o si solo existe una de estas claves regkey pero su valor es null, una cadena vacía o 0.0.0.0, esto significa que el entorno de ejecución de WebView2 no está instalado en el cliente. Inspeccione estas claves regkeys para detectar si el entorno de ejecución de WebView2 está instalado y para obtener la versión del entorno de ejecución de WebView2. Busque pv (REG_SZ) en las dos ubicaciones siguientes.

    Las dos ubicaciones del Registro que se van a inspeccionar en Windows de 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}
    

    Las dos ubicaciones del Registro que se van a inspeccionar en Windows de 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}
    
  • Enfoque 2: ejecute GetAvailableCoreWebView2BrowserVersionString y evalúe si versionInfo es nullptr. nullptr indica que el entorno de ejecución de WebView2 no está instalado. Esta API devuelve información de versión para WebView2 Runtime o para los canales de versión preliminar instalados de Microsoft Edge (Beta, Desarrollo o Canary).

Implementación solo en línea

Si tiene un escenario de implementación solo en línea en el que se supone que los usuarios tienen acceso a Internet, use el siguiente flujo de trabajo.

  1. Durante la configuración de la aplicación, ejecute una prueba para asegurarse de que el entorno de ejecución de WebView2 ya está instalado. Consulte Detectar si un entorno de ejecución de WebView2 ya está instalado, anteriormente.

  2. Si el entorno de ejecución no está instalado, en el proceso de instalación de la aplicación, use el vínculo (del botón Obtener el vínculo de la página de descarga) para descargar mediante programación el programa previo en tiempo de ejecución de WebView2.

  3. Invoque el programa previo en tiempo de ejecución webView2 mediante la emisión del siguiente comando.

    Si ejecuta el siguiente comando desde un símbolo del sistema o un proceso con privilegios elevados, desencadena una instalación por máquina . Si no ejecuta el comando desde un proceso o símbolo del sistema con privilegios elevados, se realizará una instalación por usuario . Sin embargo, una instalación por usuario se reemplaza automáticamente por una instalación por máquina , si existe un actualizador de Microsoft Edge por máquina . Se proporciona un actualizador de Microsoft Edge por máquina como parte de Microsoft Edge, excepto para el canal de vista previa canary de Microsoft Edge. Para obtener más información, consulte Instalación del entorno de ejecución por máquina o por usuario.

    MicrosoftEdgeWebview2Setup.exe /silent /install
    

El flujo de trabajo anterior tiene varias ventajas:

  • El runtime solo se instala cuando es necesario.

  • No es necesario empaquetar un instalador en tiempo de ejecución con la aplicación WebView2.

  • El programa previo en tiempo de ejecución De WebView2 detecta automáticamente la arquitectura del dispositivo (plataforma) y, a continuación, instala el runtime de WebView2 coincidente.

  • El runtime se instala de forma silenciosa.

Como alternativa, en lugar de descargar mediante programación el programa previo a petición mediante la obtención de un vínculo, como se muestra anteriormente, puede empaquetar evergreen bootstrapper para WebView2 Runtime con la aplicación.

Implementación sin conexión

Si tiene un escenario de implementación sin conexión, donde la implementación de aplicaciones tiene que funcionar completamente sin conexión, use el siguiente flujo de trabajo.

  1. Descargue el instalador independiente evergreen desde Descargar el entorno de ejecución de WebView2 en la máquina de desarrollo. El instalador independiente Evergreen instala evergreen WebView2 Runtime en el cliente.

  2. Incluya el instalador independiente evergreen en el instalador o actualizador de la aplicación.

  3. Durante la configuración de la aplicación, ejecute una prueba para asegurarse de que el entorno de ejecución de WebView2 ya está instalado. Consulte Detectar si un entorno de ejecución de WebView2 ya está instalado, anteriormente.

  4. Si el entorno de ejecución de WebView2 no está instalado, ejecute el instalador independiente evergreen. Si desea ejecutar una instalación silenciosa, puede ejecutar el siguiente comando.

    Si ejecuta el siguiente comando desde un símbolo del sistema o un proceso con privilegios elevados, desencadena una instalación por máquina . Si no ejecuta el comando desde un proceso o símbolo del sistema con privilegios elevados, se realizará una instalación por usuario . Sin embargo, una instalación por usuario se reemplaza automáticamente por una instalación por máquina , si existe un actualizador de Microsoft Edge por máquina . Se proporciona un actualizador de Microsoft Edge por máquina como parte de Microsoft Edge, excepto para el canal de vista previa canary de Microsoft Edge. Para obtener más información, consulte Instalación del entorno de ejecución por máquina o por usuario.

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

Control de las actualizaciones en tiempo de ejecución de Evergreen WebView2

Las nuevas versiones de Evergreen WebView2 Runtime se descargan automáticamente en el cliente. El cliente usa la nueva versión de WebView2 Runtime cuando se reinicia la aplicación WebView2. Sin embargo, si la aplicación se ejecuta continuamente, la aplicación seguirá usando la versión anterior de WebView2 Runtime. Esto tiene implicaciones de seguridad, ya que la versión anterior de WebView2 Runtime podría tener vulnerabilidades de seguridad que se corrigieron en la nueva versión. Debe tener en cuenta si es importante que la aplicación adopte la versión más reciente de WebView2 Runtime lo antes posible, en función del modelo de amenazas de la aplicación. Por ejemplo, si la aplicación WebView2 accede a contenido de terceros, ese contenido debe considerarse que no es de confianza, por lo que la aplicación tendría que usar la versión más reciente de WebView2 Runtime.

Para usar la nueva versión de WebView2 Runtime, debe liberar todas las referencias a los objetos de entorno WebView2 anteriores o reiniciar la aplicación. La próxima vez que la aplicación cree un nuevo entorno WebView2, la aplicación usará la nueva versión de WebView2 Runtime. Para ello, puede tener un controlador de eventos para el evento, para que la NewBrowserVersionAvailable aplicación notifique automáticamente al usuario que reinicie la aplicación. Si la aplicación controla el reinicio de la aplicación, considere la posibilidad de guardar el estado del usuario antes de que se cierre la aplicación WebView2.

Prueba de compatibilidad con el reenvío de la aplicación

En el modo de distribución Evergreen, el entorno de ejecución de WebView2 se mantiene actualizado automáticamente en el cliente para proporcionar las características y correcciones de seguridad más recientes. Si usa la distribución Evergreen, para asegurarse de que la aplicación WebView2 sigue siendo compatible con la web, debe configurar la infraestructura de pruebas.

Para obtener procedimientos recomendados sobre cómo probar la aplicación para la compatibilidad con el reenvío, consulte Pruebas preliminares mediante canales de versión preliminar y Autohospedado mediante la implementación de canales en versión preliminar.

Detección de características al usar API recientes

Cuando se usa el modo Evergreen en aplicaciones WebView2, es fundamental comprobar la presencia de nuevas API en el equipo del cliente, mediante métodos como QueryInterface o try-catch, ya que es posible que la máquina cliente no tenga la versión más reciente de WebView2 Runtime, que contiene las nuevas API. Novedades al entorno de ejecución de WebView2 podría no producirse si un Administración de TI deshabilita la actualización o si el cliente está sin conexión.

Para obtener más información, consulte Detección de características para comprobar si el entorno de ejecución instalado admite las API agregadas recientemente en los SDK de versión preliminar y versión para WebView2.

Hay directivas de actualización independientes para Microsoft Edge y El entorno de ejecución de WebView2. Deshabilitar las actualizaciones de Microsoft Edge no afecta a la disponibilidad de las API WebView2 más recientes, ya que el entorno de ejecución de WebView2 puede actualizarse automáticamente (a menos que una Administración deshabilite la actualización del entorno de ejecución de WebView2).

Detalles sobre el modo de distribución en tiempo de ejecución de versión fija

Para entornos restringidos que tienen requisitos de compatibilidad estrictos, considere la posibilidad de usar el modo de distribución de versión fija. (El modo de distribución de versión fija se llamaba anteriormente bring-your-own).

En el modo de distribución Versión fija, controlará el tiempo de las actualizaciones en el entorno de ejecución de WebView2 para la aplicación. Descargue una versión específica de WebView2 Runtime y, a continuación, empaquetela con la aplicación WebView2. El tiempo de ejecución de WebView2 en el cliente no se actualiza automáticamente. En su lugar, actualiza periódicamente el entorno de ejecución de WebView2 que se empaqueta y distribuye junto con la aplicación actualizada. El enfoque de versión fija no usa una clave del Registro para el entorno de ejecución de WebView2.

Los archivos binarios de la versión fija tienen más de 250 MB y harán que el paquete de la aplicación sea mayor en esa cantidad.

Para usar el modo de distribución versión fija:

  1. Descargue la versión fija del entorno de ejecución de WebView2 desde Descargar el entorno de ejecución de WebView2 como un paquete.

    La versión más actualizada de las versiones principales más recientes y la segunda más reciente están disponibles para su descarga en este sitio. Mantenga una copia archivada de las versiones que necesite.

  2. Descomprima el paquete WebView2 Runtime mediante el comando de línea de comandos expand {path to the package} -F:* {path to the destination folder} o mediante una herramienta de descompresión como WinRAR. Evite descomprimir a través de Explorador de archivos, ya que es posible que ese enfoque no genere la estructura de carpetas correcta.

  3. Incluya todos los archivos binarios de la versión fija descomprimida en el paquete de la aplicación, que se implementarán en el equipo de destino durante la instalación de la aplicación.

  4. Indique la ruta de acceso a los archivos binarios de la versión fija al crear el entorno WebView2.

    • Para Win32 C/C++, puede crear el entorno mediante la función CreateCoreWebView2EnvironmentWithOptions . Use el browserExecutableFolder parámetro para indicar la ruta de acceso a la carpeta que contiene msedgewebview2.exe.

    • Para .NET, debe especificar el entorno antes de que la propiedad WebView2 Source surta efecto. Para .NET, puede usar cualquiera de los enfoques siguientes para especificar el entorno:

      • Establezca la CreationProperties propiedad (WPF/WinForms) en el WebView2 elemento . Use el BrowserExecutableFolder miembro de la CoreWebView2CreationProperties clase (WPF/WinForms) para indicar la ruta de acceso a los archivos binarios de la versión fija.

      • Como alternativa, use EnsureCoreWebView2Async (WPF/WinForms) para especificar el entorno. Use el browserExecutableFolder parámetro en CoreWebView2Environment.CreateAsync para indicar la ruta de acceso a los archivos binarios de la versión fija.

    • Para WinUI, asegúrese de que la aplicación tiene acceso a la carpeta especificando la ubicación instalada y estableciendo la variable de entorno para la ruta de acceso en tiempo de ejecución. Una manera de hacerlo es agregar el siguiente código de C# a la aplicación:

      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. Empaquete y envíe los archivos binarios de la versión fija con la aplicación. Actualice los archivos binarios según corresponda.

    • Para WinUI, esto podría incluir la apertura del archivo de proyecto (.csproj) en un editor de código y, a continuación, agregar el código siguiente dentro de las etiquetas de proyecto:

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

      Compruebe que la bin\**designated architecture**\Release carpeta tiene una carpeta FixedRuntime\(número de versión) coincidente con los archivos en tiempo de ejecución en ella.

  6. En Windows 10 dispositivos, a partir de la versión fija 120, los desarrolladores de aplicaciones Win32 sin empaquetar con la versión fija deben ejecutar los siguientes comandos, para que la versión fija siga funcionando. Esto se debe a una mejora de seguridad en v120 para ejecutar el proceso del representador dentro del contenedor de aplicaciones. Este cambio no afecta a los dispositivos Windows 11, el tiempo de ejecución anterior ni las aplicaciones empaquetadas.

    1. Busque la ruta de acceso donde implementa el paquete de versión fija en el dispositivo del usuario, como la siguiente ubicación:

      D:\myapp\Microsoft.WebView2.FixedVersionRuntime.87.0.664.8.x64
      
    2. Ejecute los siguientes comandos en el dispositivo del usuario:

      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. Confirme que se conceden permisos para ALL APPLICATION PACKAGES y ALL RESTRICTED APPLICATION PACKAGES en la pestaña Seguridad de la carpeta Versión fija , como se muestra a continuación:

      Permiso para PlayReady

Problemas conocidos de la versión fija

  • Actualmente, la versión fija no se puede ejecutar desde una ubicación de red o una ruta de acceso UNC.

Archivos que se van a enviar con la aplicación

El WebView2Loader código debe enviarse con la aplicación. Esto se puede hacer mediante la vinculaciónWebView2Loader.lib estática a los archivos binarios de la aplicación o mediante la inclusión de que WebView2Loader.dll coincida con la arquitectura de la aplicación. Normalmente, Visual Studio controla esto automáticamente cuando se usa el .targets archivo en el SDK de WebView2, pero puede haber casos en los que tenga que especificar manualmente qué archivos publicar con la aplicación.

WebView2Loader.dll es un binario nativo y específico de la arquitectura, por lo que debe incluir todos los tipos de este binario en los que espera que se ejecute la aplicación. Por ejemplo:

  • Para x86, incluiría la versión x86 de WebView2Loader.dll.

  • Para una aplicación administrada con AnyCPU, incluiría las versiones x86, x64 y arm64 de WebView2Loader.dll. La versión correcta de WebView2Loader.dll se carga desde la carpeta específica de la arquitectura adecuada.

Estructura de carpetas de aplicación nativa de ejemplo:

\<myApp>
    \WebView2Loader.dll

Para las aplicaciones administradas de .NET, también debe incluir los ensamblados .NET de WebView2 para la funcionalidad principal de WebView2 (Microsoft.Web.WebView2.Core.dll) y para la funcionalidad específica de WPF/WinForms (Microsoft.Web.WebView2.Winforms.dll o Microsoft.Web.WebView2.WPF.dll).

Estructura de carpetas de aplicación administrada de ejemplo:

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