C#使用 WebView2 替代 Electron/Tauri 之 Web 核心

C#使用 WebView2 替代 Electron/Tauri 之 Web 核心
最新回答
西羊夕下

2021-11-27 16:46:53

C#通过WebView2在Web项目中实现系统托盘图标功能,替代了Electron和Tauri等桌面程序,提供了一种简单且灵活的解决方案。利用Web API与WebView2的集成,可以避免复杂的数据传输算法,直接复用Winform和Web API生态,简化开发过程。

首先,在.NET 8的Winform项目中集成WebView2,通过NuGet安装相关库。为了使Winform项目支持Web相关功能,需要在项目文件中修改Sdk为Microsoft.NET.Sdk.Web,设定OutputType为WinExe以隐藏控制台窗口,并指定TargetFramework为Windows。创建一个名为'my-react-app'的React项目,通过Vite进行开发,配置dev命令监听3000端口。

在Form1中添加WebView2控件,通过Load事件指定与Web API的交互。在C#项目中,创建一个MyController来处理前端请求。开发环境使用VSCode,前端项目通过热更新进行开发。发布时,确保将前端构建后的产物放入wwwroot,编译后的产物会包含在发布包中,点击exe文件即可测试。

最后的产物,如Webview2Demo.exe,包含了Webview2的本地缓存,打包分享时可选择排除。如果需要进一步节省空间,可以考虑将前端文件嵌入到dll中,使用Microsoft.Extensions.FileProviders.Embedded包。