×

.net2.0 .net4.0 c# 桌面应用

Microsoft.NET Framework2.0的程序判断是否安装时Microsoft.NET Framework4.0

匿名 匿名 发表于2020-07-15 20:54:00 浏览19 评论0

抢沙发发表评论

目前问题:

早先时候开发的c#桌面应用程序都是在Microsoft.NET Framework2.0下开发的。目前为了增加一些新的功能,开发环境需要从2.0升级到Microsoft.NET Framework4.0。目前已经所有客户端肯定安装了2.0,在升级的时候为了不影响客户使用,需要采用静默的升级方式。

问题:用户电脑只安装了2.0,没有安装4.0,应用升级后将无法使用


解决方案:

实例调用调用

1.判断是否安装Microsoft.NET Framework4.0:GetDotNetVersion("4.0");

using Microsoft.Win32;(需添加引用)


 private  bool GetDotNetVersion(string version)

        {

                string oldname = "0";

                using (RegistryKey ndpKey =

                    RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "").

                    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;

        }

2.判定完成后,如果没有安装,就下载Microsoft.NET Framework4.0,启动安装即可。

群贤毕至

访客