Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在应用程序运行时检测框架版本_C#_.net_Frameworks_.net Framework Version - Fatal编程技术网

C# 在应用程序运行时检测框架版本

C# 在应用程序运行时检测框架版本,c#,.net,frameworks,.net-framework-version,C#,.net,Frameworks,.net Framework Version,如何在应用程序运行时检测 客户端计算机上安装了哪些.NET framework版本号 Environment.Version.ToString() 资源信息: 资源信息: 可能的重复将写入公共语言运行库的当前版本。如果他使用2.0构建应用程序,他会得到什么?更正您的答案正确他希望应用程序在运行时运行,而不是安装哪个.net版本。从meThis获得+1有助于了解当前的应用程序环境,但当然无法检测机器上安装了哪些@用户3805967澄清:2.0版本应该是fw2.0,3.0和3.5版本应该是FW3

如何在应用程序运行时检测

客户端计算机上安装了哪些.NET framework版本号

Environment.Version.ToString()
资源信息:

资源信息:

可能的重复将写入公共语言运行库的当前版本。如果他使用2.0构建应用程序,他会得到什么?更正您的答案正确他希望应用程序在运行时运行,而不是安装哪个.net版本。从meThis获得+1有助于了解当前的应用程序环境,但当然无法检测机器上安装了哪些@用户3805967澄清:2.0版本应该是fw2.0,3.0和3.5版本应该是FW3.0,将应用目标设置为4.0和/或4.5版本应该是fw4.0,你的答案适合我的要求,效果很好,我只是想接受你的答案,但你已经删除了它,谢谢,这将编写公共语言运行库的当前版本。如果他使用2.0构建应用程序,他会得到什么?更正您的答案正确他希望应用程序在运行时运行,而不是安装哪个.net版本。从meThis获得+1有助于了解当前的应用程序环境,但当然无法检测机器上安装了哪些@用户3805967澄清:2.0版应该是fw2.0版,3.0版和3.5版应该是FW3.0版,将应用目标设置为4.0版和/或4.5版应该是fw4.0版,您的答案根据我的要求进行了调整,效果不错,我只是想接受您的答案,但您已经删除了,谢谢
private static void GetVersionFromRegistry()
{
    using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
        RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
    {
        foreach (string versionKeyName in ndpKey.GetSubKeyNames())
        {
            if (versionKeyName.StartsWith("v"))
            {

                RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
                string name = (string)versionKey.GetValue("Version", "");
                string sp = versionKey.GetValue("SP", "").ToString();
                string install = versionKey.GetValue("Install", "").ToString();
                if (install == "") //no install info, ust be later
                    Console.WriteLine(versionKeyName + "  " + name);
                else
                {
                    if (sp != "" && install == "1")
                    {
                        Console.WriteLine(versionKeyName + "  " + name + "  SP" + sp);
                    }

                }
                if (name != "")
                {
                    continue;
                }
                foreach (string subKeyName in versionKey.GetSubKeyNames())
                {
                    RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
                    name = (string)subKey.GetValue("Version", "");
                    if (name != "")
                        sp = subKey.GetValue("SP", "").ToString();
                    install = subKey.GetValue("Install", "").ToString();
                    if (install == "") //no install info, ust be later
                        Console.WriteLine(versionKeyName + "  " + name);
                    else
                    {
                        if (sp != "" && install == "1")
                        {
                            Console.WriteLine("  " + subKeyName + "  " + name + "  SP" + sp);
                        }
                        else if (install == "1")
                        {
                            Console.WriteLine("  " + subKeyName + "  " + name);
                        }

                    }

                }

            }
        }
    }
}