WPF应用安装过程中同步部署Webview Runtime的简便方法咨询
WebView2 WPF部署非官方解决方案及安装包集成方法
非官方替代实现路径(不依赖官方文档推荐的全局Runtime安装)
- 固定版本便携绿色部署:无需在客户端全局注册WebView2运行时,直接将对应版本的运行时核心文件嵌入应用目录。操作时在WebView2 NuGet包配置中将运行时部署模式设为固定版本,生成时会自动将
WebView2Loader.dll和对应版本的运行时文件夹输出到程序根目录,直接将这些文件全部打包进安装项目即可,客户端不需要单独安装任何WebView2相关组件。 - 自定义裁剪运行时打包:如果嫌官方固定版本运行时体积过大(通常100M+),可以自行裁剪项目用不到的功能模块,比如DevTools调试组件、PDF渲染能力、打印模块、媒体解码组件等,裁剪后体积可压缩至原有的40%~60%,裁剪前需要做好功能测试,避免误删项目依赖的组件导致运行异常。
VS2019安装项目同步安装WebView2的简便方案
- 安装流程嵌入静默安装:将WebView2离线引导包添加到安装项目的资源文件中,在安装项目的自定义操作节点新增安装前/安装中执行步骤,调用引导包时传入参数
/install /silent /norestart即可实现无感知后台安装,不需要用户手动操作。 - 应用启动自检自动安装:在WPF程序入口
App.xaml.cs的OnStartup生命周期中添加运行时检测逻辑,检测到设备无可用WebView2运行时时自动调用内嵌的安装包静默安装,安装完成后再启动主窗口,参考代码如下:
using Microsoft.Web.WebView2.Core; using System.Diagnostics; using System.Windows; namespace YourAppName { public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { try { // 检测是否存在可用WebView2运行时 _ = CoreWebView2Environment.GetAvailableBrowserVersionString(); } catch (WebView2RuntimeNotFoundException) { // 静默启动内嵌的WebView2安装包 Process installProcess = Process.Start(new ProcessStartInfo { FileName = "WebView2Setup.exe", Arguments = "/install /silent /norestart", WindowStyle = ProcessWindowStyle.Hidden, UseShellExecute = true, Verb = "runas" // 请求管理员权限 }); installProcess.WaitForExit(); } base.OnStartup(e); } } }
- 权限适配:如果采用上述两种静默安装方案,需要在安装项目属性中设置安装包默认请求管理员权限,避免权限不足导致WebView2安装失败。
内容的提问来源于stack exchange,提问作者unkownCoder
相关产品推荐
相关产品推荐

