.netcore和wpf开发升讯威在线客服系统:把.netframework打包进安装程序(代码片段)

iccb1013 iccb1013     2022-12-06     474

关键词:

本系列文章详细介绍使用 .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


支持请点个赞吧~ 谢谢!

.netcore和wpf开发升讯威在线客服系统:把.netframework打包进安装程序(代码片段)

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。系列文章目录:https://blog.shengxunwei.com/Home/Post/44a31a32-d4e1-4ddd-8526-8a2bcd2e22be视频实拍:演示升讯威在线客服系统在网络中断,直接禁用网卡... 查看详情

linux+.netcore开发升讯威在线客服系统:首个经过实际验证的高性能版本

业余时间用.netcore写了一个在线客服系统。并在博客园写了一个系列的文章,写介绍这个开发过程:.netcore和WPF开发升讯威在线客服系统:目录https://blog.shengxunwei.com/Home/Post/44a31a32-d4e1-4ddd-8526-8a2bcd2e22be我把这款业余时... 查看详情

linux+.netcore开发升讯威在线客服系统:首个经过实际验证的高性能版本

业余时间用.netcore写了一个在线客服系统。并在博客园写了一个系列的文章,写介绍这个开发过程:.netcore和WPF开发升讯威在线客服系统:目录https://blog.shengxunwei.com/Home/Post/44a31a32-d4e1-4ddd-8526-8a2bcd2e22be我把这款业余时... 查看详情

linux+.netcore开发升讯威在线客服系统:同时支持sqlserver和mysql的实现方法(代码片段)

前段时间我发表了一系列文章,开始介绍基于.netcore的在线客服系统开发过程。有很多朋友一直提出希望能够支持MySQL数据库,考虑到已经有朋友在用SQLServer,我在升级的过程中不能丢下对SQLServer的支持,必须让系... 查看详情

java开发升讯威在线客服系统:使用本地ip数据库实现访客来源快速定位,支持国外(代码片段)

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。本产品已经成熟稳定并投入商用。免费使用&私有化部署:https://kf.shengxunwei.com视频实拍:演示升讯威在线客服系统在网络中断,直接禁用... 查看详情

java开发升讯威在线客服系统:使用本地ip数据库实现访客来源快速定位,支持国外(代码片段)

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。本产品已经成熟稳定并投入商用。免费使用&私有化部署:https://kf.shengxunwei.com视频实拍:演示升讯威在线客服系统在网络中断,直接禁用... 查看详情

linux运行升讯威在线客服系统:同时支持sqlserver和mysql的实现方法(代码片段)

前段时间我发表了一系列文章,开始介绍基于.netcore的在线客服系统开发过程。有很多朋友一直提出希望能够支持MySQL数据库,考虑到已经有朋友在用SQLServer,我在升级的过程中不能丢下对SQLServer的支持,必须让系... 查看详情

使用wpf+chrome内核实现在线客服系统的复合客服端程序

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。本产品已经成熟稳定并投入商用。免费使用&私有化部署免费下载:https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269视频实拍:演示升讯... 查看详情

linux运行升讯威在线客服系统:同时支持sqlserver和mysql的实现方法(代码片段)

前段时间我发表了一系列文章,开始介绍基于.netcore的在线客服系统开发过程。有很多朋友一直提出希望能够支持MySQL数据库,考虑到已经有朋友在用SQLServer,我在升级的过程中不能丢下对SQLServer的支持,必须让系... 查看详情

使用wpf+chrome内核实现在线客服系统的复合客服端程序(代码片段)

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。本产品已经成熟稳定并投入商用。免费使用&私有化部署免费下载:https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269视频实拍:演示升讯... 查看详情

使用wpf+chrome内核实现在线客服系统的复合客服端程序(代码片段)

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。本产品已经成熟稳定并投入商用。免费使用&私有化部署免费下载:https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269视频实拍:演示升讯... 查看详情

java开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译(代码片段)

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

java开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译(代码片段)

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

java开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译(代码片段)

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

开发升讯威在线客服系统启示录:怎样编写堪比msdn的用户手册

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。免费在线使用&免费私有化部署:https://kf.shengxunwei.com文章目录列表请点击这里视频实拍:演示升讯威在线客服系统在网络中断,直接禁用... 查看详情

开发升讯威在线客服系统启示录:怎样编写堪比msdn的用户手册

本系列文章详细介绍使用.netcore和WPF开发升讯威在线客服与营销系统的过程。免费在线使用&免费私有化部署:https://kf.shengxunwei.com文章目录列表请点击这里视频实拍:演示升讯威在线客服系统在网络中断,直接禁用... 查看详情

升讯威在线客服系统客服端英文界面的实现方法(代码片段)

我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户。对我来说,只要能获得用户的认可,就是我最大的动力。最近收到来自巴西客户的需求,希望为客服端增加英文界面。好,... 查看详情

升讯威在线客服系统客服端英文界面的实现方法(代码片段)

我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户。对我来说,只要能获得用户的认可,就是我最大的动力。最近收到来自巴西客户的需求,希望为客服端增加英文界面。好,... 查看详情