|
Программирование >> Автоматически обновляемые приложения
private static Version GetNetfxllExactVersion() { int regValue = 0; return success; / <summary> / Возвращает точный номер версии для указанной версии .NET Framework. / </summary> / <param name= frameworkVersion >Oднo из значений / <see cref= FrameworkVersion />.</param> / <returns>3Ha4eHHe <see cref= Version >version</see>, представляющее / точный номер версии для указанной версии .NET Framework. / Если указанная версия .NET Framework не найдена, возвращается / значение <see cref= Version />, которое представляет / номер версии 0.0.0.0. / </returns> public static Version GetExactVersion(FrameworkVersion frameworkVersion) { Version fxVersion = new Version(); switch (frameworkVersion) { case FrameworkVersion.Fxll: fxVersion = GetNetfxllExactVersion(); break; case FrameworkVersion.Fx20: fxVersion = GetNetfx20ExactVersion(); break; default: break; return fxVersion; if (regValue ==1) { В строгом смысле мы здесь мухлюем, но имя ключа реестра само содержит номер версии. string[] tokens = NetfxlIRegKeyName.Split( new string[] { NDP\\v }, StringSplitOptions.None); if (tokens.Length == 2) { fxVersion = new Version(tokens[1]); return fxVersion; private static Version GetNetfx20ExactVersion() { string regValue = String.Empty; Мы можем получить -1 только, если .NET Framework не установлена или произошла какая-то ошибка при извлечении данных из реестра Version fxVersion = new Version(); if (GetRegistryValue(RegistryHive.LocalMachine, Netfx2ORegKeyName, Netfx20PlusBuiIdRegValueName, RegistryValueKind.String, out regValue)) if ([String.IsNullOrEmpty(regValue)) { В строгом смысле мы здесь мухлюем, но имя ключа реестра само содержит номер версии. Мы можем получить -1 только, если .NET Framework не установлена или произошла какая-то ошибка при извлечении данных из реестра Version fxVersion = new Version(); if (GetRegistryValue(RegistryHive.LocalMachine, NetfxlIRegKeyName, Netfxl1PlusRegValueName, RegistryValueKind.DWord, out regValue)) string[] versionTokens = Netfx2ORegKeyName.Split( new string[] { NDP\\v }, StringSplitOptions.None) versionTokens.Length == 2) if { string[] tokens = versionTokens[1].Split(.; if (tokens.Length == 3) fxVersion = new Version( Convert.ToInt32(tokens[0], NumberFormatInfo.Invariantlnfo), Convert.ToInt32(tokens[1], NumberFormatInfo.Invariantlnfo), Convert.ToInt32(tokens[2], NumberFormatInfo.Invariantlnfo), Convert.ToInt32(regValue, NumberFormatlnfo.Invariantlnfo)) , return fxVersion; / <summary> / Возвращает сервис-пак для указанной версии .NET Framework. / </summary> / <param name= frameworkVersion >Oднo из значений / <see cref= FrameworkVersion />.</param> / <returns>3Ha4eHHe <see cref= Int32 >integer</see>, представляющее / собой сервис-пак для указанной версии .NET Framework. Если / указанная версия .NET Framework не найдена, возвращается -1. / </returns> public static int GetServicePackLevel(FrameworkVersion frameworkVersion) { int ServicePackLevel = -1; switch (frameworkVersion) { case FrameworkVersion.Fxll: ServicePackLevel = GetNetfxllSPLevel(); break;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |