本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程。


系列文章目录:

https://blog.shengxunwei.com/Home/Post/44a31a32-d4e1-4ddd-8526-8a2bcd2e22be


视频实拍:演示升讯威在线客服系统在网络中断,直接禁用网卡,拔掉网线的情况下,也不丢消息,不出异常。

https://blog.shengxunwei.com/Home/Post/fe432a51-337c-4558-b9e8-347b58cbcd53


随着系统的用户越来越多,经常有朋友和我反馈,客服人员不会安装 .Net Framework。

我在之前的安装程序中,已经实现了自动检测 .Net Framework 环境,并能够引导用户打开网站进行下载,但依然有很多客服人员不会操作。需要公司的技术人员协助下载安装。

看来只有一个办法,就是把 .Net Framework 直接打包进安装程序并实现检测之后的自动安装。本篇将详细介绍实现办法。

实现效果如下,第一步安装客服系统:

随后安装程序将检测,如果系统没有安装 .Net Framework,则自动执行 .Net Framework 安装。

注意下图进度条上的提示文字:Installing Microsoft .Net Framework 4.8...

重新制作安装程序之后,用户的技术小伙伴终于舒服了。


实现办法:

我使用的是 Inno Setup 这款软件来制作的安装包,它可以通过编写脚本的方式,自定义安装过程。

如何使用 Inno Setup 制作基本的安装包,网上有很多教程,本文不再赘述,重点讲一下如何实现对 .Net Framework 的环境检测和集成其安装程序自动安装。

检测 .Net Framework 环境

使用 Inno Setup 提供的 RegKeyExists 函数,对注册表进行查找,通过对 SOFTWARE\Microsoft\.NETFramework 的检测,判断是否安装过 .Net Framework 版本和对应的版本号。

dotNetV2RegPath:='SOFTWARE\Microsoft\.NETFramework\Policy\v4.0';

if(FileOrDirExists(tmppath)) then
begin
Exec(tmppath, '/q', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
if RegKeyExists(HKLM, dotNetV2RegPath) then
begin
Result := true;
end

自动执行 .Net Framework 安装程序

这一步是本次改造的重点,相比之前仅仅给用户一个提示,要友好很多,也解决了客服人员不会下载安装的问题。

dotNetV2PackFile:='{src}\dotNetFx40_Full_x86_x64.exe';

Path := ExpandConstant(dotNetV2PackFile);
tmppath := ExpandConstant('{tmp}\dotNetFx40_Full_x86_x64.exe');
ExtractTemporaryFile('dotNetFx40_Full_x86_x64.exe');
msgbox(tmppath, mbConfirmation, MB_YESNO);
Exec(tmppath, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);

只需将以上两段代码,集成到 Inno Setup 新建的安装程序模板中即可!


最后安利一下我这个程序员业余肝出来的产品,在线使用和完整下载私有化部署都是免费的,希望对你有用,谢谢!

私有化版下载地址与版本说明:

https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269/553293a8-dfa1-4282-bc3f-96c6c623fc9a


支持请点个赞吧~ 谢谢!

.net core 和 WPF 开发升讯威在线客服系统:把 .Net Framework 打包进安装程序的更多相关文章

  1. .net core 和 WPF 开发升讯威在线客服系统【私有化部署免费版】发布

    希望 .net 和 WPF 技术时至今日,还能有一些存在感. 这个项目源于2015年前后,当时开发的初版,我使用了 ASP.NET MVC 做为后端,数据库使用原生 ADO.NET 进行操作.WPF ...

  2. .net core 和 WPF 开发升讯威在线客服系统:怎样实现拔网线也不丢消息的高可靠通信(附视频)

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  3. .net core 和 WPF 开发升讯威在线客服系统:使用本地IP数据库实现访客来源快速定位,支持国外

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 免费使用 & 私有化部署:https://kf.shengxun ...

  4. .net core 和 WPF 开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译

    业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...

  5. .net core 和 WPF 开发升讯威在线客服系统:调用有道翻译接口实现实时自动翻译的方法

    业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...

  6. .net core 和 WPF 开发升讯威在线客服与营销系统:背景和产品介绍

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf-m.shengxunwei.com ...

  7. .net core 和 WPF 开发升讯威在线客服与营销系统:系统总体架构

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  8. .net core 和 WPF 开发升讯威在线客服与营销系统:(插曲)一次端口攻击行为的分析与应对

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  9. .net core 和 WPF 开发升讯威在线客服与营销系统:使用 WebSocket 实现访客端通信

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

随机推荐

  1. TP6生成url

    和TP5生成url方式有区别, 在控制器里 需要加上 ->build(), 如 url('index/arc/list')->build(); 如果是多域名还需要指定域名,如不想加域名可以 ...

  2. Django3.2边学边记—Adimn站点管理

    准备工作 创建管理员的用户名和密码: python manage.py createsuperuser 根据提示创建用户名 密码 在admin.py中注册模型类 from django.contrib ...

  3. python从网络摄像头获取rstp视频流并截取图片保存

    import cv2 def get_img_from_camera_net(folder_path):     cap = cv2.VideoCapture("rtsp://admin:a ...

  4. P3643-[APIO2016]划艇【dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P3643 题目大意 求有多少个\(n\)个数的序列\(x\)满足,\(x_i\in \{0\}\cup[a_i,b_ ...

  5. P7518-[省选联考2021A/B卷]宝石【主席树,二分】

    正题 题目链接:https://www.luogu.com.cn/problem/P7518 题目大意 给出\(n\)个点的一棵树,每个点上有不大于\(m\)的数字. 然后给出一个长度为\(c\)的各 ...

  6. WPF进阶技巧和实战01-小技巧

    Svg在WPF中的使用 方法1:拷贝svg中的部分代码转换成Geometry(作为Path的Data使用) 在vs或者直接打开svg,看到如下代码: <?xml version="1. ...

  7. 树莓派使用python+继电器控制220V灯泡

    需要的材料 1.继电器:继电器是一种电控制器件,它实际上是用小电流去控制大电流运作的一种"自动开关",我们这里用它来控制电灯.控制了继电器就等于控制了电灯. 我购买的是某宝上3块钱 ...

  8. HTML常用的css属性(及其简写)

    这篇文章主要介绍几个常用css属性和简写 本文目录: 1.背景属性 2.边框属性 3.字体属性 4.外边距 5.填充 6.颜色 1.background[背景属性] background-color ...

  9. SONiC架构分析

    目录 系统架构 设计原则 核心组件 SWSS 容器 syncd 容器 网络应用容器 内部通信模型 SubscriberStateTable NotificationProducer/Consumer ...

  10. wqs二分 学习笔记

    wqs二分学习笔记 wqs二分适用题目及理论分析 wqs二分可以用来解决这类题目: 给你一个强制要求,例如必须\(n\)条白边,或者划分成\(n\)段之类的,然后让你求出最大(小)值.但是需要满足图像 ...