说明
把服务端打包进桌面客户端,把服务端也打包进去,助码生成的服务端代码支持改成桌面代码的,
把服务端代码打包进去以后就成了单机离线应用
具体步骤
生成必要的代码
选择下图中的选择
然后切换到代码生成基本选项卡 点击全部生成和 点击生成 NetWin
生成NetWin代码 就是c#创建客户端必须的代码
点击生成 NetWin
生成后再打开WinVue生成目录查看 发现以前只有wwwroot的现在多了一些文件
复制代码为新的WinForm项目
创建一个新目录
先把上面第一个图里面 生成的c#代码复制到该目录下(图片标识1的)
bin/obj/Views/Properties文件夹不需要复制
然后再把生成的winvue目录的代码覆盖到新建目录(图片标识2的)
这样就算创建一个新的winform项目了
覆盖后目录如上图 红框的都是覆盖的新的
新项目介绍
打开项目文件可以看到下图,对web的相关依赖包都没有了
添加了winform相关的设置
并新加入了CefSharp的引用
本示例浏览器控件用的是CefSharp 后续你也可以根据需要改成webview2 等其它的
与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地址和本地映射的信息
运行项目
如果程序运行将弹出如下页面





