С этим вопросом я впервые столкнулся недавно.
Чтобы проверить версию надо использовать это:
private bool CheckFrameworkVersion()
{
try
{
RegistryKey installed_versions = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP");
string[] version_names = installed_versions.GetSubKeyNames();
double Framework = Convert.ToDouble(version_names[version_names.Length - 1].Remove(0, 1));
if (Framework >= 3.5)
{
return true;
}
}
catch (Exception)
{
}
return false;
}

