.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


支持請點個贊吧~ 謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章