说明

把服务端打包进桌面客户端,把服务端也打包进去,助码生成的服务端代码支持改成桌面代码的,

把服务端代码打包进去以后就成了单机离线应用

具体步骤

生成必要的代码

选择下图中的选择

然后切换到代码生成基本选项卡 点击全部生成和 点击生成 NetWin

image

生成NetWin代码 就是c#创建客户端必须的代码

点击生成 NetWin

生成后再打开WinVue生成目录查看 发现以前只有wwwroot的现在多了一些文件

image

复制代码为新的WinForm项目

创建一个新目录

先把上面第一个图里面 生成的c#代码复制到该目录下(图片标识1的)

bin/obj/Views/Properties文件夹不需要复制

然后再把生成的winvue目录的代码覆盖到新建目录(图片标识2的)

这样就算创建一个新的winform项目了

image

覆盖后目录如上图 红框的都是覆盖的新的

新项目介绍

打开项目文件可以看到下图,对web的相关依赖包都没有了

添加了winform相关的设置

并新加入了CefSharp的引用

本示例浏览器控件用的是CefSharp 后续你也可以根据需要改成webview2 等其它的

image

与web目录的比较

除了项目文件外主要加了两个目录

目录1:\appcom\winapp\

目录2:\wins\

目录1 里面的内容主要是拦截浏览器请求 把浏览器对静态资源的请求映射到本地文件上

拦截对后台api的请求映射到当前工程里面

然后就是\Microsoft\AspNetCore,为了让web和win用一套代码,有些添加的对Microsoft\AspNetCore的引用有的空在那里,有的改成了桌面项目的实现

目录2 主要是ui部分,当前示例用的是winform原生 如果改成引用第三个控件方式,或者改成wpf/maui等方式改这里的5个文件就行

运行项目主要设置

主要设置在 \wins\WinProgram.cs里面

Run入口相当于Main函数

设置应用标题,拦截的url地址和本地映射的信息

image

运行项目

如果程序运行将弹出如下页面

image