Compartilhar via


Distribuir a sua aplicação e o Runtime webView2

Ao lançar uma aplicação que utiliza o Microsoft Edge WebView2, tem de distribuir o WebView2 Runtime ao distribuir o Evergreen Runtime atualizado automaticamente ou ao distribuir uma Versão Fixa do Runtime.

Uma aplicação WebView2 depende do Runtime webView2 em computadores cliente. Quando distribui a sua aplicação WebView2, tem de ter em conta a forma como o WebView2 Runtime é distribuído e atualizado nos computadores cliente.

O Runtime webView2

O WebView2 Runtime é um runtime redistribuível e funciona como a plataforma Web subjacente (ou de apoio) para aplicações WebView2. O conceito é semelhante ao Visual C++ ou ao .NET Runtime para aplicações C++/.NET. O WebView2 Runtime contém binários do Microsoft Edge modificados que são otimizados e testados para aplicações WebView2. Após a instalação do WebView2 Runtime, este não aparece como uma aplicação de browser visível pelo utilizador. Por exemplo, um utilizador não tem um atalho de ambiente de trabalho do browser ou uma entrada no menu Iniciar .

Existem duas formas diferentes de distribuir e atualizar o WebView2 Runtime para computadores cliente: o modo de distribuição Evergreen e o modo de distribuição Versão Fixa.

O modo de distribuição Do Evergreen Runtime

No modo de distribuição Evergreen , o WebView2 Runtime não é empacotado com a sua aplicação, mas é inicialmente instalado em clientes com um bootstrapper online ou um instalador offline. Posteriormente, o Runtime WebView2 é atualizado automaticamente nos computadores cliente. Em seguida, pode distribuir atualizações da sua aplicação WebView2 que utilizam as APIs WebView2 mais recentes a partir do SDK WebView2 mais recente. O modo de distribuição Evergreen é recomendado para a maioria dos programadores.

Profissionais:

  • A plataforma Web subjacente (WebView2 Runtime) é atualizada automaticamente sem mais esforço da sua parte.

  • É necessário menos espaço em disco para o WebView2 Runtime nos sistemas cliente, porque o WebView2 Runtime é partilhado por todas as aplicações WebView2 que estão no cliente.

  • Em sistemas elegíveis, os binários do Microsoft Edge e do Evergreen WebView2 Runtime estão ligados quando estão na mesma versão. Esta ligação proporciona vantagens para a quantidade de espaço em disco, memória e desempenho.

Contras:

  • A sua aplicação WebView2 não pode especificar que seja necessária uma versão específica do Runtime do WebView2.

Dispositivos Windows 11 e dispositivos Windows 10

O Evergreen Runtime está pré-instalado em todos os dispositivos Windows 11 como parte do sistema operativo Windows 11. A Microsoft instalou o WebView2 Runtime em todos os dispositivos Windows 10 elegíveis, conforme descrito em Entregar o Microsoft Edge WebView2 Runtime a dispositivos Windows 10 geridos. Mesmo que a sua aplicação utilize o modo de distribuição Evergreen, recomendamos que distribua o WebView2 Runtime para abranger casos edge em que o Runtime ainda não estava instalado. Veja Detalhes sobre o modo de distribuição Do Evergreen Runtime abaixo.

O modo de distribuição do runtime de Versão Fixa

No modo de distribuição Versão Fixa , pode transferir uma versão específica do WebView2 Runtime e empacotá-la juntamente com a sua aplicação WebView2 no pacote de aplicações. O WebView2 Runtime que empacota com a sua aplicação é utilizado apenas pela sua aplicação WebView2 e não por outras aplicações no computador do cliente.

Profissionais:

  • Tem mais controlo sobre o controlo de versões do Runtime do WebView2. Sabe quais as APIs WebView2 que estão disponíveis para a sua aplicação, porque controla que versão do WebView2 Runtime está disponível para a sua aplicação. A sua aplicação não precisa de testar se as APIs mais recentes estão presentes.

Contras:

  • Tem de gerir o WebView2 Runtime manualmente. O WebView2 Runtime não é atualizado automaticamente nos clientes, por isso, para utilizar as APIs WebView2 mais recentes, tem de atualizar periodicamente a sua aplicação juntamente com o Runtime WebView2 atualizado.

  • É necessário mais espaço em disco no cliente, se existirem várias aplicações WebView2 instaladas.

  • O runtime de Versão Fixa não pode ser instalado com um instalador.

Compreender as opções na página de transferência do Runtime

A secção Transferir o WebView2 Runtime da página Microsoft Edge WebView2 fornece várias opções para distribuir o WebView2 Runtime em computadores cliente. Compreender as opções nesta página fornece uma boa introdução para ajudar a decidir que abordagem pretende utilizar.

Opções para distribuir e atualizar o WebView2 Runtime

O modo de distribuição Evergreen é recomendado para a maioria das aplicações.

  • A secção Evergreen Bootstrapper da página fornece um pequeno bootstrapper Evergreen Runtime que é executado no computador cliente, para utilizadores online. O bootstrapper transfere e instala o Runtime Do Evergreen WebView2 adequado no cliente. Pode utilizar o bootstrapper de duas formas diferentes:

    • Ligue ao bootstrapper através de uma ligação que obtém a partir do botão Obter a Ligação . A sua aplicação utiliza esta ligação para transferir programaticamente o bootstrapper para o cliente e invocar o bootstrapper. Esta abordagem evita a necessidade de empacotar o bootstrapper com a sua aplicação. Esta abordagem tem uma dependência da Rede de Entrega de Conteúdos (CDN) da Microsoft para obter o bootstrapper.

    • Transfira o bootstrapper (com o botão Transferir na secção Bootstrapper ) e, em seguida, distribua o bootstrapper com a sua aplicação. Nesta abordagem, empacota o bootstrapper com o instalador/atualizador de aplicações ou com a própria aplicação e invoca o bootstrapper que incluiu com a sua aplicação. Esta abordagem evita a dependência da CDN da Microsoft para obter o bootstrapper.

  • A secção Instalador Autónomo do Evergreen da página fornece um instalador Evergreen grande e autónomo, principalmente para utilizadores offline. Nesta abordagem, empacota o instalador autónomo com o instalador/atualizador de aplicações ou a própria aplicação e invoca o instalador Autónomo do Evergreen. Esta abordagem evita a dependência da CDN da Microsoft para obter o Runtime.

  • A secção Versão Fixa da página fornece um runtime de Versão Fixa, que é uma versão específica do WebView2 Runtime que distribui juntamente com a sua aplicação.

Detalhes sobre o Runtime webView2

Ao distribuir a aplicação WebView2, certifique-se de que o WebView2 Runtime está presente no computador cliente. Este requisito aplica-se aos modos de distribuição Versão Fixa e Evergreen.

Se quiser utilizar o modo de distribuição Versão Fixa, pode ignorar as próximas secções e avançar para Detalhes sobre o modo de distribuição do runtime de Versão Fixa.

Manutenção do WebView2 Runtime através do Windows Server Update Services (WSUS)

Veja Windows Server Update Services (WSUS) em Gestão empresarial do WebView2 Runtimes.

Suporte de runtime ou browser durante o desenvolvimento ou produção

Durante o desenvolvimento e teste, uma aplicação WebView2 pode utilizar qualquer uma das opções como plataforma Web de apoio:

  • O Runtime webView2. Geralmente, o Runtime fornece as mesmas capacidades de plataforma Web e cadência de atualização que o canal Estável do browser Microsoft Edge. Utilize o WebView2 Runtime num ambiente de produção ou para desenvolver e testar na plataforma Web que os seus utilizadores têm atualmente.

  • Um canal de browser (Insider) de pré-visualização do Microsoft Edge. Estes canais de pré-visualização do Microsoft Edge são Beta, Dev e Canary. Utilize esta abordagem para testar a compatibilidade entre a aplicação e o reencaminhamento, para que saiba se está a chegar uma alteração interruptiva que exija a atualização da sua aplicação. Veja Testar as próximas APIs e funcionalidades.

Uma versão de produção de uma aplicação WebView2 só pode utilizar o WebView2 Runtime como a plataforma Web de apoio e não o Microsoft Edge.

O canal Estável do Microsoft Edge não é suportado para o WebView2

As aplicações WebView2 não estão autorizadas a utilizar o canal Estável do Microsoft Edge como plataforma Web de apoio. Esta restrição impede que uma versão de produção de uma aplicação WebView2 assuma uma dependência no browser. Uma aplicação WebView2 não pode assumir uma dependência no browser durante a produção, pelos seguintes motivos:

  • Não é garantido que o Microsoft Edge esteja presente em todos os dispositivos de utilizador. Muitos dispositivos em empresas e no ensino estão desligados do Windows Update ou não são geridos diretamente pela Microsoft. Estes dispositivos podem não ter o Microsoft Edge instalado. Exigir a versão de produção das aplicações WebView2 para utilizar o WebView2 Runtime em vez do Microsoft Edge evita tornar o Microsoft Edge um pré-requisito para executar uma aplicação WebView2.

  • Os browsers e as aplicações têm casos de utilização diferentes. Se uma aplicação WebView2 exigisse a presença do Microsoft Edge no cliente, isso teria potencialmente efeitos secundários indesejados na aplicação WebView2. Por exemplo, um administrador de TI pode impedir que o browser seja atualizado a partir de uma versão específica para manter o browser compatível com um site interno. Exigir a versão de produção de uma aplicação WebView2 para utilizar o WebView2 Runtime em vez do browser permite que a aplicação WebView2 permaneça sempre verde, mesmo que as atualizações do browser sejam impedidas pelo administrador dos clientes.

  • Ao contrário do browser, o Runtime do WebView2 é desenvolvido e testado para cenários de aplicações e, em alguns casos, o Runtime webView2 pode incluir correções de erros que ainda não estão disponíveis no browser.

O Evergreen WebView2 Runtime será incluído como parte do sistema operativo Windows 11. Várias aplicações WebView2 instalaram o Evergreen Runtime em dispositivos com um sistema operativo anterior ao Windows 11. No entanto, alguns dispositivos podem não ter o Runtime pré-instalado, pelo que é uma boa prática verificar se o Runtime está presente no cliente.

Antes de a aplicação criar um WebView2, a aplicação deve verificar se o WebView2 Runtime está presente (ao verificar uma chave de registo ou ao chamar uma API) e instalar o Runtime se estiver em falta. A aplicação pode fazer esta verificação ao instalar ou atualizar a sua aplicação (recomendado) ou no runtime da aplicação. Para verificar se o Runtime está presente, consulte Implementar o Runtime Do Evergreen WebView2, abaixo.

Detalhes sobre o modo de distribuição do Evergreen Runtime

O modo de distribuição Evergreen garante que a sua aplicação WebView2 está a tirar partido das atualizações de segurança e funcionalidades do WebView2 mais recentes. O modo de distribuição Evergreen tem as seguintes características:

  • O Runtime WebView2 é atualizado automaticamente sem que seja necessária qualquer ação da sua parte. Recebe as mesmas atualizações do Microsoft Edge descritas em Notas de versão para o Canal Estável do Microsoft Edge e notas de versão para Atualizações de Segurança do Microsoft Edge.

  • Todas as aplicações WebView2 que utilizam o modo de distribuição Evergreen utilizam uma cópia partilhada do Evergreen WebView2 Runtime, que poupa espaço em disco.

  • Em sistemas elegíveis, os binários do Microsoft Edge e do Evergreen WebView2 Runtime estão ligados quando estão na mesma versão. Esta ligação proporciona vantagens para a quantidade de espaço em disco, memória e desempenho.

Quando utiliza o modo de distribuição Evergreen do WebView2 Runtime, a sua aplicação WebView2 assume que os clientes têm o Runtime mais recente. A aplicação não pode exigir uma versão específica do WebView2 Runtime para todas as aplicações no cliente. Quando é lançado um novo pacote do SDK WebView2, já foi distribuída para clientes uma versão compatível do WebView2 Runtime. Por conseguinte, a sua aplicação WebView2 pode utilizar as APIs que estão na versão mais recente do SDK WebView2.

Dispositivos Windows 11 e dispositivos Windows 10 (detalhes)

A grande maioria dos dispositivos Windows 10 já tem o WebView2 Runtime instalado, conforme descrito em Entregar o Microsoft Edge WebView2 Runtime a dispositivos Windows 10 geridos. Um pequeno número de dispositivos Windows 10 não tem o WebView2 Runtime instalado. Recomendamos que processe este caso de limite através de uma das seguintes abordagens:

Veja também:

Implementar o Runtime Do Evergreen WebView2

Só é necessária uma instalação do Evergreen WebView2 Runtime para todas as aplicações Evergreen no dispositivo. Estão disponíveis várias ferramentas em Transferir o Runtime do WebView2 para o ajudar a implementar o Evergreen Runtime.

  • Para clientes online: o WebView2 Runtime Bootstrapper é um pequeno instalador (aproximadamente 2 MB). O WebView2 Runtime Bootstrapper transfere e instala o Evergreen Runtime a partir de servidores da Microsoft que correspondem à arquitetura do dispositivo do utilizador.

    • Na parte de configuração da sua aplicação WebView2, ligue ao bootstrapper. Utilizar uma ligação para transferir programaticamente o bootstrapper; selecione o botão Obter ligação na página de transferência acima.

    • Em alternativa, transfira o bootstrapper e empacote-o com a sua aplicação WebView2.

  • Para clientes offline: o Instalador Autónomo do WebView2 Runtime é um instalador completo que instala o Evergreen WebView2 Runtime em ambientes offline.

  • Se estiver a utilizar o Instalador de Aplicações para implementar aplicações MSIX, pode especificar o WebView2 Runtime como uma dependência, para que seja instalado com a aplicação. Para obter detalhes sobre como fazê-lo, consulte win32dependencies:ExternalDependency (Windows 10, Windows 11) na documentação do manifesto do pacote de aplicações. Consulte também Instalar aplicações do Windows 10 com o Instalador de Aplicações.

Instalar o Runtime como por computador ou por utilizador

O bootstrapper mais recente e o instalador autónomo suportam instalações por computador e por utilizador do WebView2 Runtime.

Se executar o instalador a partir de um processo elevado ou linha de comandos, o Runtime é instalado como por computador. Se não executar o instalador a partir de um processo elevado ou linha de comandos, o Runtime será instalado como por utilizador. No entanto, uma instalação por utilizador é automaticamente substituída por uma instalação por computador , se um Microsoft Edge Updater por computador estiver implementado. Um Microsoft Edge Updater por computador está incluído como parte do Microsoft Edge, exceto no canal de pré-visualização Canary do Microsoft Edge.

Utilize o fluxo de trabalho de implementação online seguinte ou o fluxo de trabalho de implementação offline para garantir que o Runtime já está instalado antes do início da aplicação. Pode ajustar o fluxo de trabalho consoante o seu cenário. O código de exemplo está disponível no repositório Exemplos.

Detetar se um WebView2 Runtime já está instalado

Para verificar se um WebView2 Runtime está instalado, utilize uma das seguintes abordagens:

  • Abordagem 1: Inspecione a pv (REG_SZ) chave de registo do Runtime webView2 em ambas as seguintes localizações de registo. A HKEY_LOCAL_MACHINE chave de registo é utilizada para a instalação por computador . A HKEY_CURRENT_USER chave de registo é utilizada para a instalação por utilizador .

    Para aplicações WebView2, pelo menos uma destas regkeys tem de estar presente e definida com uma versão superior a 0.0.0.0. Se não existir nenhuma chave de registo ou se existir apenas uma destas chaves de registo, mas o respetivo valor for null, uma cadeia vazia ou 0.0.0.0, significa que o Runtime do WebView2 não está instalado no cliente. Inspecione estas chaves de registo para detetar se o WebView2 Runtime está instalado e para obter a versão do WebView2 Runtime. Localize pv (REG_SZ) as duas localizações seguintes.

    As duas localizações do registo a inspecionar no 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}
    

    As duas localizações do registo a inspecionar no 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}
    
  • Abordagem 2: Execute GetAvailableCoreWebView2BrowserVersionString e avalie se versionInfo é nullptr. nullptr indica que o WebView2 Runtime não está instalado. Esta API devolve informações de versão para o WebView2 Runtime ou para quaisquer canais de pré-visualização instalados do Microsoft Edge (Beta, Dev ou Canary).

Implementação apenas online

Se tiver um cenário de implementação apenas online em que se presume que os utilizadores têm acesso à Internet, utilize o fluxo de trabalho seguinte.

  1. Durante a configuração da aplicação, execute um teste para se certificar de que o WebView2 Runtime já está instalado. Consulte Detetar se um Runtime WebView2 já está instalado, acima.

  2. Se o Runtime não estiver instalado, no processo de configuração da aplicação, utilize a ligação (a partir do botão Obter a Ligação na página de transferência) para transferir programaticamente o Bootstrapper do Runtime do WebView2.

  3. Invoque o Bootstrapper de Runtime do WebView2 ao emitir o seguinte comando.

    Se executar o seguinte comando a partir de um processo elevado ou linha de comandos, aciona uma instalação por computador . Se não executar o comando a partir de um processo elevado ou linha de comandos, ocorrerá uma instalação por utilizador . No entanto, uma instalação por utilizador é automaticamente substituída por uma instalação por computador , se um Microsoft Edge Updater por computador estiver implementado. Um Microsoft Edge Updater por computador é fornecido como parte do Microsoft Edge, exceto para o canal de pré-visualização Canary do Microsoft Edge. Para obter mais informações, consulte Instalar o Runtime como por computador ou por utilizador.

    MicrosoftEdgeWebview2Setup.exe /silent /install
    

O fluxo de trabalho acima tem várias vantagens:

  • O Runtime só é instalado quando necessário.

  • Não é necessário empacotar um instalador do Runtime com a sua aplicação WebView2.

  • O WebView2 Runtime Bootstrapper deteta automaticamente a arquitetura (plataforma) do dispositivo e, em seguida, instala o Runtime WebView2 correspondente.

  • O Runtime é instalado automaticamente.

Em alternativa, em vez de transferir programaticamente o bootstrapper a pedido ao obter uma ligação, conforme mostrado acima, pode empacotar o Evergreen Bootstrapper para o Runtime webView2 com a sua aplicação.

Implementação offline

Se tiver um cenário de implementação offline, em que a implementação de aplicações tem de funcionar totalmente offline, utilize o fluxo de trabalho seguinte.

  1. Transfira o Instalador Autónomo do Evergreen a partir de Transferir o WebView2 Runtime para o seu computador de desenvolvimento. O Instalador Autónomo do Evergreen instala o Runtime Do Evergreen WebView2 no cliente.

  2. Inclua o Instalador Autónomo do Evergreen no instalador ou atualizador de aplicações.

  3. Durante a configuração da aplicação, execute um teste para se certificar de que o WebView2 Runtime já está instalado. Consulte Detetar se um Runtime WebView2 já está instalado, acima.

  4. Se o WebView2 Runtime não estiver instalado, execute o Instalador Autónomo do Evergreen. Se quiser executar uma instalação silenciosa, pode executar o seguinte comando.

    Se executar o seguinte comando a partir de um processo elevado ou linha de comandos, aciona uma instalação por computador . Se não executar o comando a partir de um processo elevado ou linha de comandos, ocorrerá uma instalação por utilizador . No entanto, uma instalação por utilizador é automaticamente substituída por uma instalação por computador , se um Microsoft Edge Updater por computador estiver implementado. Um Microsoft Edge Updater por computador é fornecido como parte do Microsoft Edge, exceto para o canal de pré-visualização Canary do Microsoft Edge. Para obter mais informações, consulte Instalar o Runtime como por computador ou por utilizador.

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

Processar atualizações do Runtime Do Evergreen WebView2

As novas versões do Evergreen WebView2 Runtime são transferidas automaticamente para o cliente. O cliente utiliza a nova versão do WebView2 Runtime quando a aplicação WebView2 é reiniciada. No entanto, se a sua aplicação for executada continuamente, a sua aplicação continuará a utilizar a versão anterior do WebView2 Runtime. Isto tem implicações de segurança, porque a versão anterior do Runtime do WebView2 pode ter vulnerabilidades de segurança corrigidas na nova versão. Deve considerar se é importante que a sua aplicação adote a versão mais recente do WebView2 Runtime o mais rapidamente possível, com base no modelo de ameaças da sua aplicação. Por exemplo, se a sua aplicação WebView2 aceder a conteúdos de terceiros, esse conteúdo deve ser considerado não fidedigno, pelo que a sua aplicação terá de utilizar a versão mais recente do WebView2 Runtime.

Para utilizar a nova versão do WebView2 Runtime, tem de lançar todas as referências aos objetos de ambiente WebView2 anteriores ou reiniciar a aplicação. Da próxima vez que a aplicação criar um novo ambiente WebView2, a aplicação utilizará a nova versão do WebView2 Runtime. Para tal, pode ter um processador de eventos para o NewBrowserVersionAvailable evento, para que a sua aplicação notifique automaticamente o utilizador para reiniciar a aplicação. Se a aplicação processar o reinício da aplicação, considere guardar o estado do utilizador antes de a aplicação WebView2 sair.

Testar a aplicação para reencaminhamento de compatibilidade

No modo de distribuição Evergreen, o WebView2 Runtime é automaticamente mantido atualizado no cliente para fornecer as funcionalidades e correções de segurança mais recentes. Se utilizar a distribuição Evergreen, para garantir que a sua aplicação WebView2 se mantém compatível com a Web, deve configurar a infraestrutura de teste.

Para obter as melhores práticas sobre como testar a sua aplicação para compatibilidade de reencaminhamento, veja Pré-lançamento de testes com canais de pré-visualização e Autoalojamento ao implementar canais de pré-visualização.

Deteção de funcionalidades ao utilizar APIs recentes

Ao utilizar o modo Evergreen nas aplicações WebView2, é fundamental verificar a presença de novas APIs no computador do cliente ao utilizar métodos como QueryInterface ou try-catch, porque o computador cliente pode não ter o Runtime WebView2 mais recente, que contém as novas APIs. As atualizações para o Runtime WebView2 poderão não ocorrer se um Administrador de TI desativar a atualização ou se o cliente estiver offline.

Para obter detalhes, veja Deteção de funcionalidades para testar se o Runtime instalado suporta APIs adicionadas recentemente em SDKs de Pré-lançamento e Versão para WebView2.

Existem políticas de atualização separadas para o Microsoft Edge e o Runtime webView2. A desativação das atualizações para o Microsoft Edge não afeta a disponibilidade das APIs WebView2 mais recentes, uma vez que o Runtime webView2 ainda pode ser atualizado automaticamente (a menos que a atualização do WebView2 Runtime seja desativada por um Administrador).

Detalhes sobre o modo de distribuição do runtime de Versão Fixa

Para ambientes restritos com requisitos de compatibilidade rigorosos, considere utilizar o modo de distribuição Versão Fixa. (O modo de distribuição Versão Fixa era anteriormente denominado bring-your-own.)

No modo de distribuição Versão Fixa, controla a temporização das atualizações para o WebView2 Runtime da sua aplicação. Pode transferir uma versão específica do WebView2 Runtime e, em seguida, empacotá-la com a sua aplicação WebView2. O WebView2 Runtime no cliente não é atualizado automaticamente. Em vez disso, atualiza periodicamente o WebView2 Runtime que é empacotado e distribuído juntamente com a sua aplicação atualizada. A abordagem De Versão Fixa não utiliza uma chave de registo para o Runtime webView2.

Os binários de Versão Fixa são superiores a 250 MB e aumentarão o seu pacote de aplicações por esse montante.

Para utilizar o modo de distribuição Versão Fixa:

  1. Transfira a Versão Fixa do Runtime webView2 a partir de Transferir o Runtime webView2, como um pacote.

    A versão mais corrigida das versões principais mais recentes e mais recentes está disponível para transferência neste site. Mantenha uma cópia arquivada de todas as versões necessárias.

  2. Descomprima o pacote Descomprimir o WebView2 Runtime com o comando expand {path to the package} -F:* {path to the destination folder} da linha de comandos ou com uma ferramenta de descompressão, como o WinRAR. Evite descomprimir através do Explorador de Ficheiros, uma vez que essa abordagem pode não gerar a estrutura de pastas correta.

  3. Inclua todos os binários de Versão Fixa descomprimidos no pacote de aplicação, a implementar no computador de destino durante a instalação da aplicação.

  4. Indique o caminho para os binários da Versão Fixa ao criar o ambiente WebView2.

    • Para Win32 C/C++, pode criar o ambiente com a função CreateCoreWebView2EnvironmentWithOptions . Utilize o browserExecutableFolder parâmetro para indicar o caminho para a pasta que contém msedgewebview2.exe.

    • Para .NET, tem de especificar o ambiente antes de a propriedade WebView2 Source ter efeito. Para .NET, pode utilizar qualquer uma das seguintes abordagens para especificar o ambiente:

      • Defina a CreationProperties propriedade (WPF/WinForms) no WebView2 elemento . Utilize o BrowserExecutableFolder membro na CoreWebView2CreationProperties classe (WPF/WinForms) para indicar o caminho para os binários de Versão Fixa.

      • Em alternativa, utilize EnsureCoreWebView2Async (WinFormsWPF/) para especificar o ambiente. Utilize o browserExecutableFolder parâmetro em CoreWebView2Environment.CreateAsync para indicar o caminho para os binários da Versão Fixa.

    • Para WinUI, certifique-se de que a aplicação tem acesso à pasta ao especificar a localização instalada e ao definir a variável de ambiente para o caminho do runtime. Uma forma de o fazer é adicionar o seguinte código C# à sua aplicação:

      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. Empacote e envie os binários de Versão Fixa com a sua aplicação. Atualize os binários conforme adequado.

    • Para WinUI, isto pode incluir abrir o ficheiro de projeto (.csproj) num editor de código e, em seguida, adicionar o seguinte código nas etiquetas do projeto:

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

      Verifique se a bin\**designated architecture**\Release pasta tem uma pasta FixedRuntime\(número da versão) correspondente com os ficheiros de runtime.

  6. Em dispositivos Windows 10, a partir da Versão Fixa 120, os programadores de aplicações Win32 desempacotadas com a Versão Fixa são obrigados a executar os seguintes comandos, para que a Versão Fixa continue a funcionar. Isto deve-se a uma melhoria de segurança no v120 para executar o processo de Composição no Contentor de Aplicações. Esta alteração não afeta os dispositivos Windows 11, o runtime mais antigo ou as aplicações em pacote.

    1. Localize o caminho onde implementa o pacote de Versão Fixa no dispositivo do utilizador, como a seguinte localização:

      D:\myapp\Microsoft.WebView2.FixedVersionRuntime.87.0.664.8.x64
      
    2. Execute os seguintes comandos no dispositivo do utilizador:

      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 são concedidas permissões para ALL APPLICATION PACKAGES e ALL RESTRICTED APPLICATION PACKAGES no separador Segurança da pasta Versão Fixa , conforme mostrado abaixo:

      Permissão para PlayReady

Problemas conhecidos da Versão Fixa

  • Atualmente, a Versão Fixa não pode ser executada a partir de uma localização de rede ou caminho UNC.

Ficheiros a enviar com a aplicação

O WebView2Loader código tem de ser enviado com a aplicação. Isto pode ser feito ao ligarWebView2Loader.lib estaticamente aos binários da aplicação ou ao incluir o WebView2Loader.dll que corresponde à arquitetura da aplicação. Normalmente, isto é processado automaticamente pelo Visual Studio ao utilizar o .targets ficheiro no SDK WebView2, mas podem existir casos em que precisa de especificar manualmente os ficheiros a publicar com a sua aplicação.

WebView2Loader.dll é um binário nativo e específico da arquitetura, pelo que tem de incluir todos os tipos deste binário em que espera que a sua aplicação seja executada. Por exemplo:

  • Para x86, incluiria a versão x86 de WebView2Loader.dll.

  • Para uma aplicação gerida com AnyCPU, incluiria as versões x86, x64 e arm64 do WebView2Loader.dll. A versão correta do WebView2Loader.dll é carregada a partir da pasta específica da arquitetura adequada.

Exemplo de estrutura de pastas de aplicações nativas:

\<myApp>
    \WebView2Loader.dll

Para aplicações geridas pelo .NET, também tem de incluir as assemblagens .NET webView2 para a funcionalidade WebView2 principal (Microsoft.Web.WebView2.Core.dll) e para a funcionalidade específica do WPF/WinForms (Microsoft.Web.WebView2.Winforms.dll ou Microsoft.Web.WebView2.WPF.dll).

Exemplo de estrutura de pastas de aplicações geridas:

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