C#判断.NetFramework的版本是否满⾜软件运⾏需要的版本不直接运⾏软件,⽽是运⾏⼀个引导程序,在引导程序⾥⾯判断.Net Framework 的版本,满⾜条件就启动软件,不满⾜就提⽰⽤户安装.Net Framework
下⾯是如果确定⽤户的电脑是4.0及以上,才可以使⽤的新⽅法,否则只能使⽤⽼的⽅法,⼀样可以解决
各版本需要的 release 可以在微软官⽅⽂档中查到
///<summary>
///判断.Net Framework的Release是否符合需要
/// (.Net Framework 版本在4.0及以上)
///</summary>
///<param name="release">需要的版本 version = 4.5 release = 379893</param>
///<returns></returns>
private static bool GetDotNetRelease(int release)
{
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
{
if (ndpKey != null && ndpKey.GetValue("Release") != null)
{
return (int)ndpKey.GetValue("Release") >= release ? true : false;
}
return false;
}
}
⽼的⽅法,⽀持2.0及以上
///<summary>
///判断.Net Framework的Version是否符合需要
/// (.Net Framework 版本在2.0及以上)
///</summary>
///<param name="version">需要的版本 version = 4.5</param>
///<returns></returns>
private static bool GetDotNetVersion(string version)
{
string oldname = "0";
using (RegistryKey ndpKey =
RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "").
spring framework版本查看
OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
{
foreach (string versionKeyName in ndpKey.GetSubKeyNames())
{
if (versionKeyName.StartsWith("v"))
{
RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
string newname = (string)versionKey.GetValue("Version", "");
if (string.Compare(newname, oldname) > 0)
{
oldname = newname;
}
if (newname != "")
{
continue;
}
foreach (string subKeyName in versionKey.GetSubKeyNames())
{
RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
newname = (string)subKey.GetValue("Version", "");
if (string.Compare(newname, oldname) > 0)
{
oldname = newname;
}
}
}
}
}
return string.Compare(oldname, version) > 0 ? true : false;
}
最后将判断的代码放在Main⽅法⾥
static void Main(string[] args)
{
if (!GetDotNetVersion("4.5"))
{
if (MessageBox.Show("当前缺少运⾏环境,是否进⾏安装!\r\n\r\n安装完成后将⾃动启动软件", "提⽰", MessageBoxButtons.YesNo) == DialogResult.No) return;
Process.Start(@"_framework4.").WaitForExit(); //⼀直等待,直到Framework安装完成
if (GetDotNetVersion("4.5"))
Process.Start(@"你的程序.exe");
}
else
Process.Start(@"你的程序.exe");
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。