前言
WPF开发的基于.NET环境的应用运行时必须要有对应的环境,有时程序还需要VC环境,所以我们可以做一个检测环境的程序。
不要在自己的程序内检测,没有环境我们的程序压根运行不起来,所以我们写的环境监测的程序所依赖的.NET环境一定要尽可能低,保证在Windows上都能运行,我这里基本只考虑Win7以上所以用的.NET3.5版本
环境监测
工具类
1 | using Microsoft.Win32; |
注意:
IsInstallVc方法中对应的产品ID根据自己实际情况设置,获取方式可以参考这篇文章的第一小节:https://www.psvmc.cn/article/2021-07-17-innosetup-check.html
使用
1 | var isInstallVc = EnvCheckUtil.IsInstallVc(); |
更好的VC检测方式
上面的方式是根据对应的产品ID进行检测,但是VC同样的产品对应的产品ID可能不一样。
下面这种方式根据库的名称进行检测,所以会更好点。
1 | ThreadPool.QueueUserWorkItem( |
注意
使用这种方式程序必须要有管理员权限运行,否则会报异常,没有注册表的访问权限。
设置方式可以参考:https://www.psvmc.cn/article/2020-07-31-wpf-run-admin.html
环境库下载
工具类
1 | using System; |
下载
1 | string mfileurl = "https://xhkjedu.oss-cn-huhehaote.aliyuncs.com/runtime/vc_redist.x86.exe"; |
这里提供两个下载地址
VC:https://xhkjedu.oss-cn-huhehaote.aliyuncs.com/runtime/vc_redist.x86.exe
.Net4.5.2:https://xhkjedu.oss-cn-huhehaote.aliyuncs.com/runtime/NDP452-KB2901907-x86-x64-AllOS-ENU.exe
安装
1 | Process pr = new Process();//声明一个进程类对象 |
还可以简单点:Process的静态方法Start();
1 | //filiName 是你要运行的程序名,是物理路径 |
打开系统软件卸载界面
1 | /// <summary> |