Распространение приложения и среды выполнения WebView2

При выпуске приложения, использующего Microsoft Edge WebView2, необходимо распространить среду выполнения WebView2 путем распространения автоматически обновленной среды выполнения Evergreen или путем распространения фиксированной версии среды выполнения.

Приложение WebView2 зависит от среды выполнения WebView2 на клиентских компьютерах. При распространении приложения WebView2 необходимо учитывать, как среда выполнения WebView2 распространяется на клиентские компьютеры и обновляется на нее.

Среда выполнения WebView2

Среда выполнения WebView2 — это распространяемая среда выполнения, которая служит базовой (или резервной) веб-платформой для приложений WebView2. Эта концепция аналогична Visual C++ или среде выполнения .NET для приложений C++/.NET. Среда выполнения WebView2 содержит измененные двоичные файлы Microsoft Edge, которые настраиваются и тестируются для приложений WebView2. После установки среды выполнения WebView2 она не отображается как приложение браузера для просмотра пользователем. Например, у пользователя нет ярлыка на рабочем столе браузера или записи в меню "Пуск ".

Существует два разных способа распространения и обновления среды выполнения WebView2 на клиентских компьютерах: режим распространения Evergreen и режим распределения фиксированных версий.

Режим распределения Evergreen Runtime

В режиме распространения Evergreen среда выполнения WebView2 не упаковается с приложением, но изначально устанавливается на клиенты с помощью веб-начального загрузчика или автономного установщика. После этого среда выполнения WebView2 автоматически обновляется на клиентских компьютерах. Затем вы можете распространять обновления приложения WebView2, использующие последние API WebView2, из последней версии пакета SDK для WebView2. Для большинства разработчиков рекомендуется использовать режим распространения Evergreen.

Плюсы:

  • Базовая веб-платформа (среда выполнения WebView2) обновляется автоматически без дополнительных усилий.

  • Для среды выполнения WebView2 в клиентских системах требуется меньше места на диске, так как среда выполнения WebView2 совместно используется всеми приложениями WebView2, которые находятся в клиенте.

  • В подходящих системах двоичные файлы для Microsoft Edge и Evergreen WebView2 Runtime жестко связаны друг с другом, если они находятся в одной версии. Эта компоновка обеспечивает преимущества дискового пространства, памяти и производительности.

Минусы:

  • Приложение WebView2 не может указать, что требуется определенная версия среды выполнения WebView2.

Устройства с Windows 11 и Windows 10

Среда выполнения Evergreen предварительно установлена на всех устройствах Windows 11 в составе операционной системы Windows 11. Корпорация Майкрософт установила среду выполнения WebView2 на всех подходящих устройствах с Windows 10, как описано в разделе Доставка среды выполнения Microsoft Edge WebView2 на управляемые устройства Windows 10. Даже если приложение использует режим распространения Evergreen, рекомендуется распространять среду выполнения WebView2, чтобы охватить пограничные случаи, когда среда выполнения еще не установлена. См . сведения о режиме распространения Evergreen Runtime ниже.

Режим распределения среды выполнения фиксированных версий

В режиме распространения фиксированной версии скачивается определенная версия среды выполнения WebView2 и упакованная вместе с приложением WebView2 в пакет приложения. Среда выполнения WebView2, упаковаемая вместе с приложением, используется только приложением WebView2, а не другими приложениями на клиентском компьютере.

Плюсы:

  • У вас есть более полный контроль над управлением версиями среды выполнения WebView2. Вы знаете, какие API WebView2 доступны вашему приложению, так как вы управляете версией среды выполнения WebView2, доступной вашему приложению. Приложению не нужно проверять наличие последних API.

Минусы:

  • Управлять средой выполнения WebView2 нужно самостоятельно. Среда выполнения WebView2 не обновляется автоматически на клиентах, поэтому для использования последних API WebView2 необходимо периодически обновлять приложение вместе с обновленной средой выполнения WebView2.

  • На клиенте требуется больше места на диске, если установлено несколько приложений WebView2.

  • Среду выполнения фиксированной версии нельзя установить с помощью установщика.

Основные сведения о параметрах на странице загрузки среды выполнения

Раздел Загрузка среды выполнения WebView2 на странице Microsoft Edge WebView2 предоставляет несколько вариантов распространения среды выполнения WebView2 на клиентских компьютерах. Понимание параметров на этой странице содержит хорошее введение, чтобы помочь решить, какой подход вы хотите использовать.

Параметры распространения и обновления среды выполнения WebView2

Для большинства приложений рекомендуется использовать режим распространения Evergreen.

  • В разделе Загрузчик Evergreen на странице предоставляется небольшой загрузчик Evergreen Runtime, который выполняется на клиентском компьютере для пользователей в Интернете. Загрузчик скачивает и устанавливает соответствующую среду выполнения Evergreen WebView2 на клиент. Загрузчик можно использовать несколькими разными способами:

    • Ссылка на загрузчик, используя ссылку, полученную с помощью кнопки Получить ссылку . Приложение использует эту ссылку для программного скачивания начального загрузчика на клиент и вызова начального загрузчика. Такой подход позволяет избежать необходимости упаковки начального загрузчика с приложением. Этот подход зависит от сети доставки содержимого (CDN) Корпорации Майкрософт, чтобы получить начальный загрузчик.

    • Скачайте загрузчик (с помощью кнопки Скачать в разделе Начальная загрузчик ), а затем распространите загрузчик вместе с приложением. При таком подходе вы упаковываете загрузчик с помощью установщика или средства обновления приложения или самого приложения и вызываете загрузчик, включенный в приложение. Такой подход позволяет избежать зависимости от сети CDN Майкрософт, чтобы получить начальный загрузчик.

  • В разделе Evergreen Standalone Installer на странице предоставляется большой автономный установщик Evergreen, в первую очередь для автономных пользователей. При таком подходе вы упаковываете автономный установщик с помощью установщика приложения, updater или самого приложения и вызываете автономный установщик Evergreen. Такой подход позволяет избежать зависимости от CDN Майкрософт, чтобы получить среду выполнения.

  • Раздел Исправленная версия страницы содержит среду выполнения фиксированной версии, которая является определенной версией среды выполнения WebView2, распространяемой вместе с приложением.

Сведения о среде выполнения WebView2

При распространении приложения WebView2 убедитесь, что на клиентском компьютере присутствует среда выполнения WebView2. Это требование применяется как к режимам распространения Evergreen, так и к режимам распределения фиксированных версий.

Если вы хотите использовать режим распространения фиксированных версий, можно пропустить следующие несколько разделов и перейти к разделу Сведения о режиме распределения среды выполнения фиксированной версии.

Обслуживание среды выполнения WebView2 через Windows Server Update Services (WSUS)

См. статью Windows Server Update Services (WSUS) в разделе Корпоративное управление средами выполнения WebView2.

Поддержка среды выполнения или браузера во время разработки или рабочей среды

Во время разработки и тестирования приложение WebView2 может использовать любой из вариантов в качестве резервной веб-платформы:

  • Среда выполнения WebView2. Среда выполнения обычно предоставляет те же возможности веб-платформы и частоту обновлений, что и стабильный канал браузера Microsoft Edge. Используйте среду выполнения WebView2 в рабочей среде или для разработки и тестирования веб-платформы, которая уже есть у пользователей.

  • Предварительный просмотр (программа предварительной оценки) в браузере Microsoft Edge. Эти каналы предварительной версии Microsoft Edge: бета-версия, разработка и Canary. Используйте этот подход, чтобы протестировать приложение на прямую совместимость, чтобы узнать, произойдет ли критическое изменение, которое потребует обновления приложения. См . статью Тестирование будущих API и функций.

Рабочий выпуск приложения WebView2 может использовать только среду выполнения WebView2 в качестве резервной веб-платформы, но не Microsoft Edge.

Стабильный канал Microsoft Edge не поддерживается для WebView2

Приложениям WebView2 запрещено использовать стабильный канал Microsoft Edge в качестве вспомогательной веб-платформы. Это ограничение не позволяет рабочему выпуску приложения WebView2 принимать зависимость от браузера. Приложение WebView2 не может принимать зависимость от браузера во время рабочей среды по следующим причинам:

  • Microsoft Edge не гарантирует наличие на всех пользовательских устройствах. Многие устройства на предприятиях и в образовательных учреждениях отключены от Центра обновления Windows или не управляются корпорацией Майкрософт напрямую. На таких устройствах может не быть установлено Приложение Microsoft Edge. Требование в рабочей версии приложений WebView2 использовать среду выполнения WebView2, а не Microsoft Edge, позволяет избежать того, чтобы Microsoft Edge был обязательным условием для запуска приложения WebView2.

  • Браузеры и приложения имеют разные варианты использования. Если приложению WebView2 требуется присутствие Microsoft Edge на клиенте, это может иметь непреднамеренные побочные эффекты на приложение WebView2. Например, ИТ-администратор может запретить обновление браузера с определенной версии, чтобы обеспечить совместимость браузера с внутренним веб-сайтом. Требование рабочей версии приложения WebView2 использовать среду выполнения WebView2, а не браузер, позволяет приложению WebView2 оставаться вечнозеленым, даже если обновления браузера запрещены администратором клиента.

  • В отличие от браузера, среда выполнения WebView2 разрабатывается и тестируется для сценариев приложений, и в некоторых случаях среда выполнения WebView2 может включать исправления ошибок, которые еще не доступны в браузере.

Среда выполнения Evergreen WebView2 будет включена в состав операционной системы Windows 11. Различные приложения WebView2 установили среду выполнения Evergreen на устройствах с операционной системой до Windows 11. Однако на некоторых устройствах может не быть предварительно установленной среды выполнения, поэтому рекомендуется проверить, присутствует ли среда выполнения на клиенте.

Прежде чем приложение создаст WebView2, оно должно проверить наличие среды выполнения WebView2 (путем проверки раздела реестра или вызова API) и установить среду выполнения, если она отсутствует. Приложение может выполнить эту проверку при установке или обновлении приложения (рекомендуется) или во время выполнения приложения. Сведения о наличии среды выполнения см. в разделе Развертывание среды выполнения Evergreen WebView2 ниже.

Сведения о режиме распределения Evergreen Runtime

Режим распространения Evergreen гарантирует, что приложение WebView2 использует последние функции WebView2 и обновления для системы безопасности. Режим распределения Evergreen имеет следующие характеристики:

  • Среда выполнения WebView2 обновляется автоматически без каких-либо действий. Он получает те же обновления Microsoft Edge, которые описаны в заметках о выпуске для Microsoft Edge Stable Channel и заметках о выпуске обновлений системы безопасности Microsoft Edge.

  • Все приложения WebView2, использующие режим распространения Evergreen, используют общую копию среды выполнения Evergreen WebView2, которая экономит место на диске.

  • В подходящих системах двоичные файлы для Microsoft Edge и Evergreen WebView2 Runtime жестко связаны друг с другом, если они находятся в одной версии. Эта компоновка обеспечивает преимущества дискового пространства, памяти и производительности.

При использовании режима распространения Evergreen среды выполнения WebView2 приложение WebView2 предполагает, что клиенты имеют последнюю версию среды выполнения. Приложению не может требоваться определенная версия среды выполнения WebView2 для всех приложений на клиенте. К моменту выпуска нового пакета SDK для WebView2 совместимая версия среды выполнения WebView2 уже была распространена среди клиентов. Поэтому приложение WebView2 может использовать API-интерфейсы, которые находятся в последней версии пакета SDK для WebView2.

Устройства с Windows 11 и Устройства с Windows 10 (сведения)

На подавляющем большинстве устройств с Windows 10 уже установлена среда выполнения WebView2, как описано в разделе Доставка среды выполнения Microsoft Edge WebView2 на управляемые устройства Windows 10. На небольшом числе устройств с Windows 10 не установлена среда выполнения WebView2. Рекомендуется обрабатывать этот пограничный случай, используя один из следующих подходов:

См. также:

Развертывание среды выполнения Evergreen WebView2

Для всех приложений Evergreen на устройстве требуется только одна установка среды выполнения Evergreen WebView2. В разделе Скачивание среды выполнения WebView2 доступно несколько средств, которые помогут вам развернуть среду выполнения Evergreen.

  • Для сетевых клиентов: загрузчик среды выполнения WebView2 — это небольшой установщик (примерно 2 МБ). Загрузчик среды выполнения WebView2 скачивает и устанавливает среду выполнения Evergreen с серверов Майкрософт, которая соответствует архитектуре устройства пользователя.

    • В части установки приложения WebView2 свяжите ссылку на загрузчик. Используйте ссылку для программной загрузки начального загрузчика; Нажмите кнопку Получить ссылку на странице загрузки выше.

    • Или скачайте загрузчик и упаковайте его с помощью приложения WebView2.

  • Для автономных клиентов: автономный установщик среды выполнения WebView2 — это полный установщик, который устанавливает среду выполнения Evergreen WebView2 в автономных средах.

  • Если вы используете установщик приложений для развертывания приложений MSIX, можно указать среду выполнения WebView2 в качестве зависимости, чтобы она была установлена вместе с приложением. Дополнительные сведения о том, как это сделать, см. в статье win32dependencies:ExternalDependency (Windows 10, Windows 11) в документации по манифесту пакета приложения. См. также статью Установка приложений Windows 10 с помощью установщика приложений.

Установка среды выполнения для каждого компьютера или пользователя

Последняя версия начального загрузчика и автономный установщик поддерживают установку среды выполнения WebView2 как на компьютере, так и на пользователя .

Если установщик запускается из процесса с повышенными привилегиями или командной строки, среда выполнения устанавливается на каждом компьютере. Если установщик не запускается из процесса с повышенными привилегиями или командной строки, среда выполнения будет установлена от имени пользователя. Однако установка для каждого пользователя автоматически заменяется установкой на отдельный компьютер , если на месте установлен Microsoft Edge Updater для каждого компьютера . Средство обновления Microsoft Edge для каждого компьютера входит в состав Microsoft Edge, за исключением канала Microsoft Edge canary preview.

Используйте следующий рабочий процесс развертывания в сети или автономный рабочий процесс развертывания, чтобы убедиться, что среда выполнения уже установлена перед запуском приложения. Рабочий процесс можно настроить в зависимости от сценария. Пример кода доступен в репозитории Примеры.

Определение того, установлена ли среда выполнения WebView2

Чтобы убедиться, что среда выполнения WebView2 установлена, используйте один из следующих подходов:

  • Подход 1. Проверьте pv (REG_SZ) ключ регистрации для среды выполнения WebView2 в обоих следующих расположениях реестра. Ключ HKEY_LOCAL_MACHINE regkey используется для установки на каждом компьютере . Regkey HKEY_CURRENT_USER используется для установки на пользователя .

    Для приложений WebView2 должен присутствовать по крайней мере один из этих ключей, который должен быть определен с версией, превышающей 0.0.0.0. Если ни один из них не существует или если существует только один из этих ключей, но его значение равно null, пустая строка или 0.0.0.0.0, это означает, что среда выполнения WebView2 не установлена на клиенте. Проверьте эти ключи, чтобы определить, установлена ли среда выполнения WebView2, и получить версию среды выполнения WebView2. Найдите pv (REG_SZ) в следующих двух местах.

    Два расположения реестра для проверки в 64-разрядной версии Windows:

    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}
    

    Два расположения реестра для проверки в 32-разрядной версии Windows:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
    
    HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
    
  • Подход 2. Запустите GetAvailableCoreWebView2BrowserVersionString и оцените, имеет ли versionInfo значение nullptr. nullptr указывает, что среда выполнения WebView2 не установлена. Этот API возвращает сведения о версии для среды выполнения WebView2 или для любых установленных каналов предварительной версии Microsoft Edge (бета-версия, разработка или Canary).

Развертывание только в сети

Если у вас есть сценарий развертывания только в сети, в котором предполагается, что у пользователей есть доступ к Интернету, используйте следующий рабочий процесс.

  1. Во время настройки приложения выполните тест, чтобы убедиться, что среда выполнения WebView2 уже установлена. См . раздел Обнаружение уже установленной среды выполнения WebView2 выше.

  2. Если среда выполнения не установлена, в процессе установки приложения используйте ссылку (с кнопки Получить ссылку на странице загрузки), чтобы программно скачать загрузчик среды выполнения WebView2.

  3. Вызовите загрузчик среды выполнения WebView2, выполнив следующую команду.

    Если выполнить следующую команду из процесса с повышенными привилегиями или командной строки, она активирует установку для каждого компьютера . Если вы не выполняете команду из процесса с повышенными привилегиями или командной строки, будет выполнена установка для каждого пользователя . Однако установка для каждого пользователя автоматически заменяется установкой на отдельный компьютер , если на месте установлен Microsoft Edge Updater для каждого компьютера . Средство обновления Microsoft Edge для отдельных компьютеров предоставляется в составе Microsoft Edge, за исключением канала Canary Preview Microsoft Edge. Дополнительные сведения см. в разделе Установка среды выполнения для каждого компьютера или пользователя.

    MicrosoftEdgeWebview2Setup.exe /silent /install
    

Приведенный выше рабочий процесс имеет несколько преимуществ:

  • Среда выполнения устанавливается только при необходимости.

  • Вам не требуется упаковывать установщик среды выполнения с приложением WebView2.

  • Загрузчик среды выполнения WebView2 автоматически обнаруживает архитектуру устройства (платформу), а затем устанавливает соответствующую среду выполнения WebView2.

  • Среда выполнения устанавливается автоматически.

Кроме того, вместо программного скачивания начального загрузчика по запросу, получив ссылку, как показано выше, можно упаковыть загрузчик Evergreen для среды выполнения WebView2 с приложением.

Автономное развертывание

Если у вас есть сценарий автономного развертывания, в котором развертывание приложений необходимо работать полностью в автономном режиме, используйте следующий рабочий процесс.

  1. Скачайте автономный установщик Evergreen из статьи Загрузка среды выполнения WebView2 на компьютер разработки. Автономный установщик Evergreen устанавливает среду выполнения Evergreen WebView2 на клиенте.

  2. Включите автономный установщик Evergreen в установщик приложения или средство обновления.

  3. Во время настройки приложения выполните тест, чтобы убедиться, что среда выполнения WebView2 уже установлена. См . раздел Обнаружение уже установленной среды выполнения WebView2 выше.

  4. Если среда выполнения WebView2 не установлена, запустите автономный установщик Evergreen. Если вы хотите запустить автоматическую установку, можно выполнить следующую команду.

    Если выполнить следующую команду из процесса с повышенными привилегиями или командной строки, она активирует установку для каждого компьютера . Если вы не выполняете команду из процесса с повышенными привилегиями или командной строки, будет выполнена установка для каждого пользователя . Однако установка для каждого пользователя автоматически заменяется установкой на отдельный компьютер , если на месте установлен Microsoft Edge Updater для каждого компьютера . Средство обновления Microsoft Edge для отдельных компьютеров предоставляется в составе Microsoft Edge, за исключением канала Canary Preview Microsoft Edge. Дополнительные сведения см. в разделе Установка среды выполнения для каждого компьютера или пользователя.

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

Обработка обновлений среды выполнения Evergreen WebView2

Новые версии среды выполнения Evergreen WebView2 автоматически загружаются в клиент. Клиент использует новую версию среды выполнения WebView2 при перезапуске приложения WebView2. Однако если приложение работает непрерывно, оно будет по-прежнему использовать предыдущую версию среды выполнения WebView2. Это влияет на безопасность, так как в предыдущей версии среды выполнения WebView2 могут быть обнаружены уязвимости системы безопасности, исправленные в новой версии. Следует подумать о том, важно ли для приложения как можно скорее внедрить последнюю версию среды выполнения WebView2 на основе модели угроз вашего приложения. Например, если приложение WebView2 обращается к стороннему содержимому, это содержимое должно считаться ненадежным, поэтому приложению потребуется использовать последнюю версию среды выполнения WebView2.

Чтобы использовать новую версию среды выполнения WebView2, необходимо либо освободить все ссылки на предыдущие объекты среды WebView2, либо перезапустить приложение. При следующем создании новой среды WebView2 приложение будет использовать новую версию среды выполнения WebView2. Для этого можно создать обработчик событий для NewBrowserVersionAvailable события, чтобы приложение автоматически уведомлял пользователя о необходимости перезапуска приложения. Если приложение обрабатывает перезапуск приложения, рекомендуется сохранить состояние пользователя до выхода приложения WebView2.

Тестирование приложения на прямую совместимость

В режиме распространения Evergreen среда выполнения WebView2 автоматически обновляется на клиенте для предоставления последних функций и исправлений безопасности. Если вы используете дистрибутив Evergreen, чтобы обеспечить совместимость приложения WebView2 с Интернетом, необходимо настроить инфраструктуру тестирования.

Рекомендации по тестированию приложения на прямую совместимость см. в разделах Предварительное тестирование с помощью каналов предварительной версии и Самостоятельное размещение путем развертывания каналов предварительной версии.

Обнаружение функций при использовании последних API

При использовании режима Evergreen в приложениях WebView2 важно проверить наличие новых API на компьютере клиента с помощью таких методов, как QueryInterface или try-catch, так как на клиентском компьютере может не быть последней версии среды выполнения WebView2, содержащей новые API. Обновления среды выполнения WebView2 могут не происходить, если ИТ-администратор отключает обновление или если клиент находится в автономном режиме.

Дополнительные сведения см. в разделе Определение компонентов, чтобы проверить, поддерживает ли установленная среда выполнения недавно добавленные API в пакетах SDK предварительного выпуска и выпуска для WebView2.

Существуют отдельные политики обновления для Microsoft Edge и среды выполнения WebView2. Отключение обновлений для Microsoft Edge не влияет на доступность последних API WebView2, так как среда выполнения WebView2 по-прежнему может обновляться автоматически (если только обновление среды выполнения WebView2 не отключено администратором).

Сведения о режиме распределения среды выполнения фиксированной версии

Для сред с ограниченными ограничениями, которые имеют строгие требования к совместимости, рассмотрите возможность использования режима распределения фиксированных версий. (Режим распространения фиксированных версий ранее назывался "принеси свой собственный".)

В режиме распространения фиксированных версий вы управляете временем обновления среды выполнения WebView2 для приложения. Вы скачиваете определенную версию среды выполнения WebView2, а затем упаковывая ее вместе с приложением WebView2. Среда выполнения WebView2 на клиенте не обновляется автоматически. Вместо этого вы периодически обновляете среду выполнения WebView2, которая упакована и распространяется вместе с обновленным приложением. Подход с фиксированной версией не использует раздел реестра для среды выполнения WebView2.

Двоичные файлы фиксированной версии имеют размер более 250 МБ, и на этот объем будет увеличен пакет приложения.

Чтобы использовать режим распределения фиксированных версий, выполните следующие действия.

  1. Скачайте исправленную версию среды выполнения WebView2 из раздела Скачать среду выполнения WebView2 в виде пакета.

    Наиболее исправленная версия последних и второй основных выпусков доступна для скачивания на этом сайте. Сохраните архивную копию всех необходимых версий.

  2. Распаковка пакета среды выполнения WebView2 с помощью команды expand {path to the package} -F:* {path to the destination folder} командной строки или средства распаковки, например WinRAR. Избегайте распаковки с помощью проводника, так как этот подход может привести к неправильной структуре папок.

  3. Включите все распакованные двоичные файлы фиксированной версии в пакет приложения, которые будут развернуты на целевом компьютере во время установки приложения.

  4. Укажите путь к двоичным файлам фиксированной версии при создании среды WebView2.

    • Для Win32 C/C++ можно создать среду с помощью функции CreateCoreWebView2EnvironmentWithOptions . browserExecutableFolder Используйте параметр , чтобы указать путь к папке, содержащей msedgewebview2.exe.

    • Для .NET необходимо указать среду, прежде чем свойство WebView2 Source вступит в силу. Для .NET можно использовать один из следующих подходов, чтобы указать среду:

      • CreationProperties Задайте свойство (WPF/WinForms) для WebView2 элемента . BrowserExecutableFolder Используйте член класса CoreWebView2CreationProperties (WPF/WinForms), чтобы указать путь к двоичным файлам фиксированной версии.

      • Кроме того, используйте EnsureCoreWebView2Async (WPF/WinForms) для указания среды. browserExecutableFolder Используйте параметр в CoreWebView2Environment.CreateAsync, чтобы указать путь к двоичным файлам фиксированной версии.

    • Для WinUI убедитесь, что приложение имеет доступ к папке, указав установленное расположение и задав переменную среды для пути среды выполнения. Один из способов сделать это — добавить следующий код C# в приложение:

      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. Упаковка и отправка двоичных файлов фиксированной версии вместе с приложением. Обновите двоичные файлы соответствующим образом.

    • Для WinUI это может включать открытие файла проекта (.csproj) в редакторе кода, а затем добавление следующего кода в теги проекта:

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

      Убедитесь, что в папке bin\**designated architecture**\Release есть соответствующая папка FixedRuntime\(номер версии) с файлами среды выполнения.

  6. На устройствах с Windows 10, начиная с фиксированной версии 120, разработчики неупакованных приложений Win32, использующие фиксированную версию, должны выполнять следующие команды, чтобы фиксированная версия продолжала работать. Это связано с улучшением безопасности в версии 120 для запуска процесса отрисовщика в контейнере приложений. Это изменение не влияет на устройства Windows 11, старую среду выполнения или упакованные приложения.

    1. Найдите путь, по которому вы развертываете пакет фиксированной версии на устройстве пользователя, например следующее расположение:

      D:\myapp\Microsoft.WebView2.FixedVersionRuntime.87.0.664.8.x64
      
    2. Выполните следующие команды на устройстве пользователя:

      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. Убедитесь, что разрешения предоставлены для ALL APPLICATION PACKAGES и ALL RESTRICTED APPLICATION PACKAGES на вкладке "Безопасность " папки "Исправленная версия ", как показано ниже.

      Разрешение для PlayReady

Известные проблемы с исправленной версией

  • В настоящее время фиксированную версию нельзя запустить из сетевого расположения или пути UNC.

Файлы для отправки с приложением

Код WebView2Loader должен быть отправлен вместе с приложением. Это можно сделать путем статического связыванияWebView2Loader.lib с двоичными файлами приложения или путем включения WebView2Loader.dll объекта , соответствующего архитектуре приложения. Обычно это автоматически обрабатывается Visual Studio при использовании .targets файла в пакете SDK для WebView2, но могут быть случаи, когда необходимо вручную указать, какие файлы следует опубликовать в приложении.

WebView2Loader.dll — это собственный двоичный файл, зависящий от архитектуры, поэтому необходимо включить все варианты этого двоичного файла, в которых ожидается запуск приложения. Например:

  • Для x86 следует включить версию WebView2Loader.dllx86 .

  • Для управляемого приложения с помощью AnyCPU необходимо включить версии WebView2Loader.dllx86, x64 и arm64 . Правильная версия WebView2Loader.dll загружается из соответствующей папки для конкретной архитектуры.

Пример структуры собственных папок приложения:

\<myApp>
    \WebView2Loader.dll

Для управляемых приложений .NET также необходимо включить сборки .NET WebView2 для основных функций WebView2 (Microsoft.Web.WebView2.Core.dll) и для функций WPF/WinForms (Microsoft.Web.WebView2.Winforms.dll или Microsoft.Web.WebView2.WPF.dll).

Пример структуры управляемых папок приложения:

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