#winforms #microsoft-edge #webview2
Вопрос:
В связи с окончанием срока службы IE я заменяю WebBrowser
элемент управления (на основе IE) в нашем родном приложении .net forms (c#) на Microsoft.Web.WebView2.WinForms.WebView2
. На странице распространения указано, что пользователю необходимо установить среду выполнения WebView2, которая составляет около 100 МБ!
Мой вопрос, действительно ли это необходимо? Разве недостаточно установить MS Edge (который есть на КАЖДОЙ машине с Windows 10)?
На этой странице написано:
Предварительные условия: Убедитесь, что вы установили следующий список предварительных условий, прежде чем продолжить. Среда выполнения WebView2 или любой канал Microsoft Edge Insider (предварительный просмотр) (бета-версия, разработка или канарейка), установленный на поддерживаемой ОС (в настоящее время Windows 10, Windows 8.1 и Windows 7).
Однако я не уверен, является ли Edge Insider браузером Edge обычного пользователя?
Итак, действительно ли мне нужно распространять 100 МБ среды выполнения WebView2 (некоторые из наших клиентов являются автономными пользователями) вместе с моим установщиком приложений (который использует WinForms.Элемент управления WebView2 для отображения HTML-страниц в моем родном приложении), или этого достаточно, если в этих системах установлен MS Edge?
Комментарии:
1. Моя вина…. Спасибо! Это может быть ответом, если вы напишете его так. В нем также перечислены все причины.
2.
which is on EVERY Windows 10 machine
Нет, это не так. Он просто есть по умолчанию, но его можно удалить. И кроме того, ваша программа может работать на чем-то другом, кроме Windows 10, даже в более старых версиях, где Edge не был клоном Chrome, как сегодня.
Ответ №1:
Ответ: Да, вам нужно установить среду выполнения WebView2! Версия Edge, установленная на компьютерах пользователей, НЕ является внутренним каналом — это стабильный канал.
Хотя вы можете использовать канал Edge Insider, это не рекомендуется, за исключением разработки, так как только у разработчиков есть эта версия.
Процитируем страницу, на которую вы ссылались: «Стабильный канал Microsoft Edge не поддерживается для WebView2».
Ответ №2:
Да, вам действительно нужно распространять среду выполнения WebView2. Из документа, на который вы ссылаетесь, вы можете найти причины:
- В соответствии с этим пунктом Поддержка среды выполнения или браузера во время разработки или производства, вы можете обнаружить, что:
В производственном выпуске приложения WebView2 в качестве резервной веб-платформы может использоваться только среда выполнения WebView2, а не Microsoft Edge.
- Предустановленный браузер в Windows 10-это канал Edge Stable, большинство людей не будут устанавливать канал Edge Insider (предварительный просмотр), и:
Стабильный канал Microsoft Edge не поддерживается для WebView2
Ответ №3:
Да, включите среду выполнения WebView2 в свой дистрибутив.
Если вы включите загрузчик WebView2 Evergreen в свой комплект, он получит новейший встроенный браузер evergreen. Он предназначен для защиты в будущем, даже если вы некоторое время не обновляете свой комплект.
Мой комплект правильно устанавливается на W10, W7SP1, W8.1, WS2016 и WS2019, когда я включаю
Кроме того, ваш установщик может определить, установлен ли уже WebView2, и пропустить его переустановку. Я надеюсь, что все, кто пишет установщик, сделают это. Если мы это сделаем, то наши пользователи будут избавлены от переустановки для каждого нового приложения, использующего WebView2.
Эта небольшая строфа кода настройки Inno определяет его правильно для меня. Возвращает True
, когда необходимо запустить установщик WebView2.
function WebView2IsNotInstalled: Boolean;
var Pv: String;
var key64: String;
var key32: String;
begin
key64 := 'SOFTWAREWOW6432NodeMicrosoftEdgeUpdateClients{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}';
key32 := 'SOFTWAREMicrosoftEdgeUpdateClients{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}';
Result := True;
if RegQueryStringValue(HKEY_LOCAL_MACHINE, key64, 'pv', Pv) then
begin
Result := 0 = Length(pV);
end
else begin
if RegQueryStringValue(HKEY_LOCAL_MACHINE, key32, 'pv', Pv) then
begin
Result := 0 = Length(pV);
end;
end;
end;
(Пожалуйста, дважды проверьте этот код: я не мастер установки.)
Комментарии:
1. Спасибо. Наши клиенты не обязательно имеют подключение к Интернету (безопасность), поэтому нам определенно нужен автономный установщик. Что для меня странно, так это то, почему установщик пакета webview2 не может определить, установлен он уже или нет.
2. Я ищу что-то подобное для приложения c# win form