首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过固定版本分发模式分发我的WebView2 WPF应用?

基础概念

WebView2 是微软推出的一个基于 Chromium 的浏览器控件,用于在 Windows 应用程序中嵌入现代 Web 内容。WPF(Windows Presentation Foundation)是微软的一个用户界面框架,用于构建 Windows 桌面应用程序。

固定版本分发模式是指在应用程序中嵌入特定版本的 WebView2 运行时,而不是依赖于系统上安装的最新版本。这种方式可以确保应用程序在不同环境中的一致性和稳定性。

优势

  1. 一致性:确保所有用户使用相同版本的 WebView2,避免因版本差异导致的问题。
  2. 稳定性:固定版本可以减少因 WebView2 更新带来的潜在兼容性问题。
  3. 可控性:开发者可以更好地控制和管理 WebView2 的更新和分发。

类型

固定版本分发模式主要有两种方式:

  1. 嵌入式分发:将 WebView2 运行时作为应用程序的一部分进行分发。
  2. 单独的分发包:提供一个单独的分发包,用户需要手动安装。

应用场景

适用于需要确保一致性和稳定性的企业级应用程序,特别是在不同环境中部署的应用程序。

实现步骤

以下是通过嵌入式分发模式分发 WebView2 WPF 应用的步骤:

  1. 下载 WebView2 运行时: 从 Microsoft Edge WebView2 下载页面 下载特定版本的 WebView2 运行时。
  2. 创建 WPF 项目: 使用 Visual Studio 创建一个新的 WPF 项目。
  3. 添加 WebView2 控件: 在项目中添加 WebView2 控件。可以通过 NuGet 包管理器安装 Microsoft.Web.WebView2.Wpf 包。
  4. 配置 WebView2 环境: 在应用程序启动时,配置 WebView2 环境并指定嵌入式分发路径。
  5. 配置 WebView2 环境: 在应用程序启动时,配置 WebView2 环境并指定嵌入式分发路径。
  6. 打包应用程序: 将 WebView2 运行时和应用程序一起打包成一个安装包。

常见问题及解决方法

  1. 版本不匹配
    • 问题:不同用户环境中 WebView2 版本不一致,导致兼容性问题。
    • 解决方法:使用固定版本分发模式,确保所有用户使用相同版本的 WebView2。
  • 运行时缺失
    • 问题:用户环境中缺少 WebView2 运行时。
    • 解决方法:在应用程序安装包中包含 WebView2 运行时,并在安装过程中自动配置环境。
  • 权限问题
    • 问题:某些情况下,安装或配置 WebView2 运行时可能需要管理员权限。
    • 解决方法:在应用程序安装过程中提示用户以管理员身份运行安装程序。

参考链接

通过以上步骤,你可以成功地将 WebView2 WPF 应用通过固定版本分发模式进行分发。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET混合开发解决方案5 WebView2运行时与分发应用

通过两种不同方式将 WebView2 运行时分发和更新到客户端计算机:常青分发模式固定版本分发模式。...固定版本运行时分发模式固定版本分发模式下,下载特定版本 WebView2 运行时,并将其与应用包中 WebView2 应用一起打包。...请参阅 了解浏览器版本WebView2固定版本更新策略 对于具有严格兼容性要求受约束环境,请考虑使用固定版本分发模式固定版本分发模式以前称为自带版本分发模式。   ...在固定版本分发模式下,开发者可以控制应用程序WebView2运行时更新时间。下载特定版本WebView2运行时,然后将其与WebView2应用程序打包。...若要使用固定版本分发模式,请执行以下操作: 1、下载 WebView2 运行时固定版本作为包。 可在此站点下载最新版本和第二大版本最修补版本。 保留所需任何版本存档副本。

1.7K10

.NET混合开发解决方案24 WebView2对比CefSharp超强优势

5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...或WPF窗体 .NET混合开发解决方案13 自定义WebView2上下文菜单 .NET混合开发解决方案14 WebView2基本身份验证 .NET混合开发解决方案15 WebView2控件集成到...NET混合开发解决方案21 WebView2 应用开发最佳做法 .NET混合开发解决方案22 开发安全 WebView2 应用 .NET混合开发解决方案23 将 WebView2 应用分发为单个可执行文件...然后又测试对比了其他多种组件,具体情况可以阅读博客《.NET桌面程序集成Web网页开发十种解决方案》。

3.1K20
  • .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件

    系列目录     【已更新最新开发文章,点击查看详细】   WebView2组件支持在WinForm、WPF、WinUI3、Win32应用程序中集成加载Web网页功能应用。...本篇主要介绍如何在WinForm程序中集成WebView2组价详细过程。 准备工作 1、安装Visual Studio,建议安装Visual Studio 2022 。...下载地址:https://developer.microsoft.com/zh-cn/microsoft-edge/webview2      关于WenView2运行时版本信息,请参考博客《.NET...桌面程序应用WebView2组件集成网页开发5 WebView2运行时与分发应用》。...骤2 安装 WebView2 SDK NuGet中搜索WebView2 提供了如下详细版本 如果用于生产环境,建议使用稳定版(没有标记-prerelease),学习研究时可以使用预发行版。

    1.1K10

    C#开发BIMFACE系列52 CS客户端集成BIMFACE应用技术方案

    博客《C#开发BIMFACE系列49 Web网页集成BIMFACE应用技术方案》、《C#开发BIMFACE系列50 Web网页中使用jQuery加载模型与图纸》、《C#开发BIMFACE系列...下面是审图系统中实际应用案例   WinForm程序中集成网页基本原理就是通过一个包含类似浏览器功能控件,将Web网页载入并解析渲染出来。...CefSharp拥有WinForms和WPF应用程序浏览器控件,以及自动化项目的OffScreen版本。...下载地址: https://developer.microsoft.com/zh-cn/microsoft-edge/webview2 分发 WebView2 应用WebView2 运行时:https...WebView2 Runtime x86,x64自动识别,不需要手动设置。 WinForm、WPF、.NET Core 都可以用一个统一包。 实际项目应用效果如下图。

    4.6K10

    .NET混合开发解决方案11 WebView2加载网页中JS调用C#方法

    5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...控件导航事件 .NET混合开发解决方案10 WebView2控件调用网页JS方法   在博客《.NET混合开发解决方案10 WebView2控件调用网页JS方法》中介绍了C#调用网页中定义JavaScript...WebView2控件通过将对象传递到Web网页,使应用程序能够弥合web和本机应用程序(客户端程序:WinForm、WPF、WinUI、Win32)之间鸿沟。...如果您有一个通过AddHostObjectToScript向JavaScript公开本机对象,则可以使用它来操作本机文件系统上文件。 下面通过一个Demo来讲解如何实现JS调用C#方法。

    10.9K10

    .NET混合开发解决方案12 网页JS调用C#方法访问WinForm或WPF窗体

    系列目录     【已更新最新开发文章,点击查看详细】 WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发十种解决方案 .NET混合开发解决方案1 WebView2简介...5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...但是在企业级应用软件中业务需求可能更加复杂,如JS调用C#方法之后,需要访问宿主窗体,设置窗体(WinForm、WPF、WinUI、Win32)中控件等。...下面通过一个Demo来讲解如何实现JS调用C#方法。 业务场景:JS调用C#方法,传递三个参数,分别是num1、num2、message。

    2.4K40

    .NET混合开发解决方案10 WebView2控件调用网页JS方法

    系列目录     【已更新最新开发文章,点击查看详细】 WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发十种解决方案 .NET混合开发解决方案1 WebView2简介...5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...控件导航事件   客户端程序(WinForm、WPF、Win32、WinUI)集成WebView控件加载Web完成后,还有两种常见需求 C#调用JS方法 执行通用方法,设置网页特效。...WebView2控件加载网页后,如果将一个文件(如:script.js、script.txt等)拖拽到WebView2控件上,将自动执行文件,效果如下 可以通过webView.CoreWebView2

    3K20

    .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件

    5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2...控件   在博客《.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件》中介绍了WinForm程序中集成WebView2控件基本实现方式,首先通过NuGet...本文介绍使用固定版本运行时环境方式来实现加载网页。.../zh-CN/microsoft-edge/webview2/#download-section下载WebView2固定版本运行时安装程序 下载完成后,将其解压到D盘根目录下(开发者根据自己需要放置在其他位置也可以...属性表示WebView2控件固定版本运行时目录下“msedgewebview2.exe”所在目录 代码实现方式如下,在使用Webview2访问具体网址之前赋值即可,示例程序是在构造函数中实现其赋值

    1.1K10

    .NET混合开发解决方案16 管理WebView2用户数据

    5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...通过 CoreWebView2BrowsingDataKinds 枚举可以检索每一个数据项 如何以及何时创建 UDF WebView2控件为 WebView2 主机应用创建用户数据文件夹 (UDF)...主机应用可以通过指定自定义 UDF 位置来重叠它们。 或者,每台计算机可以有一个 UDF。 这取决于主机应用如何配置 UDF。 如果每个用户安装了应用,则 UDF 可以是每个用户。... (.NET) 事件更新浏览器版本时,主机应用必须确保浏览器进程退出并关闭共享同一 UDF 任何 WebView2 控件。

    2.2K30

    .NET混合开发解决方案14 WebView2基本身份验证

    5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...或WPF窗体 .NET混合开发解决方案13 自定义WebView2上下文菜单   WebView2 应用基本身份验证包括从 HTTP 服务器检索网页一系列身份验证和导航步骤。...WebView2 控件实例引发事件。 WebView2 控件位于 HTTP 服务器和主机应用之间。 WebView2 控件充当主机应用和 HTTP 服务器之间通信中介。 编写主机应用。...主机应用通过WebView2 控件提供用户名和密码来响应该事件。 WebView2 控件再次从 HTTP 服务器请求 URI,但这次使用是身份验证 (用户名和密码) 。

    1.7K20

    .NET混合开发解决方案13 自定义WebView2上下文菜单

    5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...或WPF窗体 Edge浏览器中网页,点击鼠标右键,出现上下文菜单及子菜单,如下图 WebView2控件加载网页后,鼠标在网页上点击右键,也会出现上下文菜单,如下图 对比可以看出WebView2控件中右键上下文菜单内容比...结合博客《.NET混合开发解决方案2 WebView2与Edge浏览器区别》可知,WebView2控件中对于网页右键上下文菜单做了裁剪。...考虑一些极端情况,系统需要统一实现自定义右键菜单功能。 通过一个简单示例来演示如何实现自定义WebView2上下文菜单。 场景:在第二个场景基础之上,增加2个自定义右键菜单项。

    2.9K20

    .NET混合开发解决方案9 WebView2控件导航事件

    5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件   在博客《.NET混合开发解决方案7...这只是最基本应用WebView2功能之所以强大,是因为它提供了很多开放属性与事件供开发者调用以完成复杂功能。...具体可以参考博客《.NET混合开发解决方案2 WebView2与Edge浏览器区别》。   本文介绍WebView2应用程序导航事件。...例如,当WebView2用户导航到新网站时,本机内容(WinForm、WPF、Win32、WinUI)通过侦听 NavigationStarting 事件来侦听更改。

    95010

    使用 WPF + Chrome 内核实现 在线客服系统 复合客服端程序

    在本篇文章中,将详细介绍如何通过 WPF + Chrome 内核方式实现复合客服端应用程序。...在 1.3 版本之前,客服端程序使用是 WebBrowser 组件,也就是 IE 内核,随时系统用户持续增加,偶尔会收到一些细节问题反馈,比如在部分版本(萝卜版番茄版毛桃版之类) Windows...为了解决这个问题,从 1.5 版本开始客服程序中 Web 容器升级到了最新 Chrome 内核,除了获得了更好性能之外,得以使程序在不同版本 Windows 系统上表现一致。...响应事件 在网页导航期间,WebView2 控件将引发事件。 承载 WebView2 控件应用侦听以下事件。...就可以完成 WPF + Chrome 内核 复合式应用程序!

    3K10

    WinForm中WebBrowser加载Flash库

    前言 Webview2官方文档: https://docs.microsoft.com/zh-cn/microsoft-edge/webview2/get-started/wpf WPF加载网页三种方式.../2021-10-29-wpf-cefsharp.html Webview2 : WebView2未来应该是要替代WebBrowser,虽然需要依赖本机自带Edge chromium内核,但相信未来...应该这样说 WebBrowser使用是系统版本IE对应兼容模式。 比如Win10是IE11,对应兼容模式是IE7。 所以我在Win10上用下面两种方式获取到IE版本都是11。...DOCTYPE指令展示网页 ie7//7000 (0x1B58) 使用WebBrowser Control控件应用程序所使用默认值,在IE7标准模式中按照网页上!...安装WebView2 Runtime WebView2 实在诱人,最新 Edge(Chromium) 性能强悍,而且所有使用 WebView2 应用可以共用一个运行时(说人话就是一个安装了应用

    2.1K30

    WinForm嵌入Web网页解决方案

    这就是一个典型Web网页中启动客户端程序场景。更形象应用场景是,WinForn/WPF客户端程序嵌入Web程序,Web程序网页中js调用WinForm/WPF窗体以及业务方法。...所以,通常所谓浏览器内核也就是浏览器所采用渲染引擎,渲染引擎决定了浏览器如何显示网页内容以及页面的格式信息。...国内厂商一般把其他内核叫做“高速浏览模式”,而Trident则是“兼容浏览模式”,用户可以来回切换。...CefSharp拥有WinForms和WPF应用程序浏览器控件,以及自动化项目的OffScreen版本。...使用 WebView2,可以在本机应用不同部分嵌入 Web 代码,或在单个 WebView 实例中生成所有本机应用

    4.5K11

    .NET桌面程序集成Web网页开发十种解决方案

    下面是客户端审图系统中集成Web网页实际应用案例 WinForm程序中集成网页基本原理就是通过一个包含类似浏览器功能控件,将Web网页载入并解析渲染出来。   ...所以,通常所谓浏览器内核也就是浏览器所采用渲染引擎,渲染引擎决定了浏览器如何显示网页内容以及页面的格式信息。...使用 WebView2,可以在本机应用不同部分嵌入 Web 代码,或在单个 WebView 实例中生成所有本机应用。...下图是在Winform程序中使用WebView2组件加载博客园页面的效果 控件4:CefSharp   CefSharp是一种将功能齐全符合标准web浏览器嵌入C#或VB.NET应用程序简单方法...CefSharp拥有WinForms和WPF应用程序浏览器控件,以及自动化项目的OffScreen版本

    2.9K11

    聊聊WebView2

    接下来就聊一下这个事情: 微软不会放弃Electron 第一:Electron是GitHub产品,GitHub是微软子公司,WebView2是Edge团队产品(是Edge副产物),Edge团队是微软直属团队...C++代码就要考虑如何在不同平台下调用不同系统API,如果开发者写是C#代码,那么就要考虑如何把.NET框架分发给他们用户了。...第四:WebView2目前还很不成熟,上次调研它时,它还不支持自定义Scheme(如果它不支持,开发者很难通过C++或C#代码让应用具备这方面的能力),甚至连PrintToPdf这类API也还是几个版本前才提供出来...第五:WebView2生态很不好,想想看:你如何应用中自如使用Sqlite(能获得类似Knex.js这样支持吗)、如何让你应用读取并显示一个本地大文件(大概率要自己实现流式读取机制,要把文件数据...多进程才是资源消耗高症结所在。它优势就是可以和其他应用共享进程。但假设用户也没开Edge,也没打开其他WebView2应用呢?这种优势还体现出来吗?

    3.8K11

    WPF开发-使用WebView2加载页面及页面交互

    WebView2 WebView2和CEF相比,在WPF中CEF相当于把渲染界面生成图片再加载,而WebView2则没有这一步,性能有显著提升。 但是这种方式暂时没有找到支持Flash方法。...官方教程 https://docs.microsoft.com/zh-cn/microsoft-edge/webview2/get-started/wpf 安装运行时 WebView2 实在诱人,最新...Edge(Chromium) 性能强悍,而且所有使用 WebView2 应用可以共用一个运行时(说人话就是一个安装了应用时,其他应用就不用装了)。...第一种方式目前还不支持Edge稳定版,无法使用于生产环境 第三种方式和以前CEF比较类似,将chromium嵌入了程序,可以控制chromium版本,减少依赖性,同时可以控制浏览器版本,避免升级导致不稳定...不过还是建议传递字符串,转换操作放在JS中处理。

    9.6K21
    领券