Как узнать, установлен ли пакет обновления 1 на сервере с .NET 3.5?
Как узнать, установлен ли .NET 3.5 SP1?
Ответ 1
Используйте "Добавить/Удалить программы" с панели управления.
Ответ 2
Посмотрите HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\
. Одно из них должно быть правдой:
- Значение
Version
в этом ключе должно быть 3.5.30729.01 - Или значение
SP
в том же ключе должно быть 1
В С# (взято из первого комментария) вы можете сделать что-то в этом направлении:
const string name = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5";
RegistryKey subKey = Registry.LocalMachine.OpenSubKey(name);
var version = subKey.GetValue("Version").ToString();
var servicePack = subKey.GetValue("SP").ToString();
Ответ 3
Вы можете перейти на SmallestDotNet, используя IE с сервера. Это сообщит вам версию, а также предоставит ссылку для загрузки, если вы устарели.
Ответ 4
Я пришел на эту страницу, пытаясь понять, как обнаружить версии фреймворков, установленные на сервере, без доступа к удаленному рабочему столу или реестру, поэтому ответ Danny V работал у меня.
string path = System.Environment.SystemDirectory;
path = path.Substring( 0, path.LastIndexOf('\\') );
path = Path.Combine( path, "Microsoft.NET" );
// C:\WINDOWS\Microsoft.NET\
string[] versions = new string[]{
"Framework\\v1.0.3705",
"Framework64\\v1.0.3705",
"Framework\\v1.1.4322",
"Framework64\\v1.1.4322",
"Framework\\v2.0.50727",
"Framework64\\v2.0.50727",
"Framework\\v3.0",
"Framework64\\v3.0",
"Framework\\v3.5",
"Framework64\\v3.5",
"Framework\\v3.5\\Microsoft .NET Framework 3.5 SP1",
"Framework64\\v3.5\\Microsoft .NET Framework 3.5 SP1",
"Framework\\v4.0",
"Framework64\\v4.0"
};
foreach( string version in versions )
{
string versionPath = Path.Combine( path, version );
DirectoryInfo dir = new DirectoryInfo( versionPath );
if( dir.Exists )
{
Response.Output.Write( "{0}<br/>", version );
}
}
Ответ 5
Взгляните на статью, в которой показаны ключи реестра, которые вам нужно искать, и предоставляет библиотеку .NET, которая будет делать это для вы.
Сначала вы должны определить, установлен ли .NET 3.5, просмотрев HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\Install, который является значением DWORD. Если это значение присутствует и установлено в 1, то установлена эта версия Framework.
Посмотрите на HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\SP, который является значением DWORD, которое указывает на уровень Service Pack (где 0 не является пакетом обновления).
Чтобы быть в курсе дел, вам действительно нужно убедиться, что .NET Fx 2.0 и .NET Fx 3.0 установлены, а затем проверьте, установлен ли .NET 3.5. Если все три являются истинными, то вы можете проверить уровень пакета обновления.
Ответ 6
Проверьте, существует ли следующая директория:
В 64-битных машинах: % SYSTEMROOT%\Microsoft.NET\Framework64\v3.5\Microsoft.NET Framework 3.5 SP1\
В 32-битных машинах: % SYSTEMROOT%\Microsoft.NET\Framework\v3.5\Microsoft.NET Framework 3.5 SP1\
Где% SYSTEMROOT% - переменная среды SYSTEMROOT (например, C:\Windows).
Ответ 7
Предполагая, что имя повсюду "Microsoft.NET Framework 3.5 SP1", вы можете использовать это:
string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
{
return rk.GetSubKeyNames().Contains("Microsoft .NET Framework 3.5 SP1");
}