# WebView2AppCSharp **Repository Path**: chanchaw/web-view2-app-csharp ## Basic Information - **Project Name**: WebView2AppCSharp - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-21 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 概述 最初为 `SNBC EMS` 项目制作报修用触摸屏上的客户端,为保证在 `win7,win10` 的兼容性使用 `D:\source\c#\WebView2App\bin\Debug\net48\win-x86` 下的客户端,注意修改配置文件 `WebView2App.exe.config` ## 编译与部署 使用 `visual studio` 的菜单项生成 `exe` 不对,要在 `Trae` 中提示 `请重新编译可以兼容win7,win10,32位,64位系统的exe文件到目录D:\source\c#\WebView2App\bin\Debug\net48\win-x86` 进行编译客户端 2026年2月25日 08:48:24 针对三处软件图标(`exe`文件,软件标题栏,`windows`系统任务栏)修改代码并添加配置项 `AppIcon`,后面两处图标来自该配置,但是编译后的 `exe` 文件的图标是编译后无法修改的,以后如果要更换图标需要修改两处:配置文件 `WebView2App.exe.config` 中的配置项 `AppIcon`、源码中的图标文件 `jzy.ico`。更换源码中的图标后执行下面代码重新编译 ```bash dotnet build "d:\source\c#\WebView2App\WebView2App.csproj" -c Debug -r win-x86 ``` 注意,2026年2月25日 生成的客户端 `D:\source\c#\WebView2App\bin\Debug\net48\win-x86` 中缺少 `WebView` 本地运行时,要到公司群晖目录 `Y:\客户资料\nsk\app\windows客户端\c#\win-client` 下拷贝目录 `WebView2Runtime` 作为 `exe` 文件的兄弟目录后才可运行 ## 图标 使用普通的 `png` 图片无法制作客户端图标,需要在 [网站](https://www.png2ico.com/) 中转换为 `ico` 图标文件后让 `Trae` 制作为客户端图标 ## 系统配置 配置文件 `WebView2App.exe.config` 内容如下 ```bash ``` ## 错误与提示 ### server2019不支持 在 `Windows Server 2019 Standard` 中运行本项目编译的客户端会提示要求安装 `.NET Framework 4.8.1`,从微软官网下载后安装提示`此操作系统不支持 .NET Framework 4.8.1` 。4.8.1在线安装包在 `群晖 FileBrowser > alist安装程序 > cc > devtools > NDP481-Web.exe` ## 更新日志 - 2026年2月25日,通过 `Trae` 设置编译后的 `exe` 文件图标以及软件标题栏图标、`windows`系统任务栏图标 - 2026年1月31日 - 通过 `trae` 添加配置文件中默认打开自动最大化,通过 `chat` 让 `trae` 编译兼容的客户端到目录 `bin\Debug\net48\win-x86` 下 - 制作开机自启动,已测试通过:win7,win10(都是64位系统) - 2026年3月31日 - 启动软件后先请求接口 `/server/now` 检测和服务器的连通性,网络故障则显示 `exe` 内置的显示故障的页面 - 新增客户端自动更新功能,配置文件新增配置项如下 ```bash ``` ​ 需要为 `nginx` 配置如下 ```bash location /snbcemsuwin { alias "D:/projs/snbcems/upgrade/touch"; index index.html index.htm; # 不缓存 html if ($request_filename ~* ^.*?.(html|htm|css|js)$) { add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate"; } } ``` 在服务器上创建目录 `D:\projs\snbcems\upgrade\touch` ,在其下创建文件 `version.json` 内容如下: ```bash { "version": "1.0.0.1", "url": "http://192.168.0.250/snbcemsuwin/SNBC设备管理系统.exe" } ``` 客户端启动后读取该文件检查服务器端最新的版本号 `version`,如果大于客户端当前的版本号则会按照属性 `url` 指定的路径下载最新版本客户端并更新到客户端覆盖原客户端。 本功能通过 `Grok` 生成的精准文案如下(自动更新功能在多次纠错,更换黑窗口为进度条提示用户后功能可用) ```tex 当用户启动本软件时,程序需先进行版本检测和自动更新流程: 启动软件后,立即检测是否有新版本。 如果检测到新版本,则自动下载并更新客户端。 更新完成后,自动启动新版本的软件(原软件可退出)。 具体实现要求: 版本检测接口 客户端通过接口 A 来获取服务器上最新的版本信息。 接口 A 的完整 URL 必须配置在软件的配置文件中: WebView2App.exe.config 默认配置值:http://192.168.0.250/snbcemsuwin/version.json WebView2App.exe.config中的配置项的名称请不要使用A,应该采用语义化命名的参数 接口返回数据格式: { "version": "1.0.0.0", "url": "http://192.168.0.250/snbcemsuwin/1.exe" } version:服务器端最新版本号(字符串格式,推荐使用四段式版本号:如 1.0.0.0) url:新版本 exe 文件的下载地址 版本对比逻辑 获取本地当前 exe 文件的版本号(FileVersion 或 AssemblyVersion)。 将服务器返回的 version 与本地版本号进行对比。 如果服务器的 version 大于 本地版本,则触发自动更新流程。 请检查现在编译exe文件时是否会自动增加版本号,如果不会请开启这个功能 自动更新流程 下载 url 中指定的新版本 exe 文件。 完成下载后,安全地替换当前运行的 exe 文件(或采用常见的安全更新方式,例如下载到临时目录,替换后重启)。 更新成功后,自动启动新版本的软件,并退出旧版本进程。我想要这个自动更新的功能在windows7和windows10中都可以正常使用,所以下载文件的临时目录请保证在两个系统中都可以使用 附加要求: 接口 URL 必须可通过配置文件 WebView2App.exe.config 灵活修改,便于后续部署到不同环境。 请优先考虑更新过程的稳定性与用户体验(例如:显示更新进度、错误处理、更新失败时仍能启动旧版本等)。 建议采用静默更新(无弹窗打扰用户),或根据实际需要提供简洁的更新提示。 ```