您的位置:首页 > 运维架构 > 网站架构

网站安装打包 软件环境检测与安装[二] 上

2016-11-23 12:02 204 查看
这一节主要讲检测,下一节讲安装!
一个C#制作完的工具一运行,一个可以不用检测与安装的就是framework环境了,要是没这东西,也运行不起来。

这里提供几个检测的范围:

一.检测操作系统版本

二.检测IIS版本

三.检测framework版本

四.检测RAR工具是否安装

以下为具体实现:

一.检测操作系统版本:

我们通过:System.Environment.OSVersion.Version 可以获取到操作系统的版本。

之后,我们要根据版本号,进行if else if或switch之类的分支判断即可:




代码

public static string GetOSystemName()
{
return GetOSystemNameByVersion(System.Environment.OSVersion.Version) + "\r\n" + System.Environment.OSVersion.ServicePack;
}
private static string GetOSystemNameByVersion(Version version)
{
if (version.Major == 5 && version.Minor == 2)
{
return "Microsoft Windows Server 2003";
}
else if (version.Major == 5 && version.Minor == 1)
{
return "Microsoft Windows XP ";
}
else if (version.Major == 5 && version.Minor == 0)
{
return "Microsoft Windows 2000 ";
}
else if (version.Major <= 4)
{
return "Microsoft Windows NT ";
}
return "未知";
}

二.检测IIS版本

这里主要是通过注册表进行判断:

我们通过获取:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\INetStp下的

主版本号MajorVersion 和

次版本号MinorVersion 来判断IIS的版本




代码

public static string GetIISVerstion()
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\INetStp");
if (key == null) { return ""; }
return Convert.ToString(key.GetValue("MajorVersion")) + "." + Convert.ToString(key.GetValue("MinorVersion"));
}

三.检测framework版本

和检测IIS一样,可以通过注册表检测:

注册表路径:

1.1版本:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322

2.0版本:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727

3.0版本:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup

3.5版本:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5

只要判断注册表节点是否存在即可!代码参考IIS检测。

四.检测RAR工具

这里我是通过检测RAR.exe文件的常见安装路径来判断检测:

常见路径:C:\Program Files\WinRAR\WinRAR.exe

这里同样检测D盘,E盘路径:




代码

public static bool IsFileExistsByCDE(string path)
{
bool exists=true;
if (!System.IO.File.Exists(path))
{
path = path.Replace("C:", "D:");
if (!System.IO.File.Exists(path))
{
path = path.Replace("D:", "E:");
if (!System.IO.File.Exists(path))
{
exists = false;
}
}
}
return exists;
}

打完,收工!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: