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)
Комментариев нет:
Отправить комментарий