.net|.net core 和 WPF 开发升讯威在线客服系统(把 .Net Framework 打包进安装程序)
本系列文章详细介绍使用 .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|.net core 和 WPF 开发升讯威在线客服系统(把 .Net Framework 打包进安装程序)】
文章图片
支持请点个赞吧~ 谢谢!
推荐阅读
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理
- 烦恼和幸福