C#检测.net框架是否安装,以及安装的版本。谁知道代码呀?我想用Linker生成不需要.net框架运行的setup程序来判断是否已安装.net框架,再提示用户未安装.net。谁有代码呀?

解决方案 »

  1.   

    Environment.Version.ToString());
    Request.Browser.ClrVersion.Major
    查询注册表是否安装3.0框架
    Request.Browser.ClrVersion.Major
    private static bool IsDotNet3VersionInstalled(int major, int minor, int build)
      {
      bool result = false;
      const string regValueName = "InstallSuccess";
      if (!result)
      {
      const string regKeyNameFormat = "Software\\Microsoft\\NET Framework Setup\\NDP\\v{0}.{1}\\Setup";
      string regKeyName = string.Format(regKeyNameFormat, major, minor);
      result |= CheckForRegValueEquals1(regKeyName, regValueName);
      }
      if (!result)
      {
      const string regKeyNameFormat2 = "Software\\Wow6432Node\\Microsoft\\NET Framework Setup\\NDP\\v{0}.{1}\\Setup";
      string regKeyName2 = string.Format(regKeyNameFormat2, major, minor);
      result |= CheckForRegValueEquals1(regKeyName2, regValueName);
      }  return result;
      }  private static bool CheckForRegValueEquals1(string regKeyName, string regValueName)
      {
      using (RegistryKey key = Registry.LocalMachine.OpenSubKey(regKeyName, false))
      {
      object value = null;  if (key != null)
      {
      value = key.GetValue(regValueName);
      }  return (value != null && value is int && (int)value == 1);
      }
      }