public class NetVersions
{
public static Collection<Version> InstalledDotNetVersions()
{
Collection<Version> versions = new Collection<Version>();
RegistryKey NDPKey = Registry.LocalMachine.OpenSubKey( @"SOFTWARE\Microsoft\NET Framework Setup\NDP", true );
if( NDPKey != null )
{
string[] subkeys = NDPKey.GetSubKeyNames();
foreach( string subkey in subkeys )
{
GetDotNetVersion( NDPKey.OpenSubKey( subkey ), subkey, versions );
GetDotNetVersion( NDPKey.OpenSubKey( subkey ).OpenSubKey( "Client" ), subkey, versions );
GetDotNetVersion( NDPKey.OpenSubKey( subkey ).OpenSubKey( "Full" ), subkey, versions );
}
}
return versions;
}
static void GetDotNetVersion( RegistryKey parentKey, string subVersionName, Collection<Version> versions )
{
if( parentKey != null )
{
string installed = Convert.ToString( parentKey.GetValue( "Install" ) );
if( installed == "1" )
{
string version = Convert.ToString( parentKey.GetValue( "Version" ) );
if( string.IsNullOrEmpty( version ) )
{
if( subVersionName.StartsWith( "v" ) )
version = subVersionName.Substring( 1 );
else
version = subVersionName;
}
Version ver = new Version( version );
if( !versions.Contains( ver ) )
versions.Add( ver );
}
}
}
}Буду рад, если оно понадобится еще кому-нибудь.
понедельник, 15 июля 2013 г.
Как узнать, какие версии Framework установлены на компьютере
На днях передо мной встала задача определить программно, какие версии .Net Framework установлены на машине клиента. Покопавшись в реестре, я нашел нужную мне информацию в "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP". Однако, что бы правильно вытащить ее оттуда, пришлось немного повозиться и вылилось в следующий код:
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий