Как я могу узнать, установлен ли SP1 на сервере с .NET 3.5?
.net-3.5
installation
Парень
источник
источник
Посмотри на
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\
. Одно из них должно быть правдой:Version
Значение этого ключа должно быть 3.5.30729.01SP
значение в том же ключе должно быть 1В C # (взято из первого комментария) вы можете сделать что-то в этом роде:
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();
источник
Version
есть3.5.30729.5420
иSP
есть1
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" /V Version
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" /V SP
Вы можете перейти на SmallestDotNet, используя IE с сервера. Это сообщит вам версию, а также предоставит ссылку для загрузки, если вы устарели.
источник
Я пришел на эту страницу, пытаясь понять, как определить версии фреймворка, установленные на сервере без доступа к удаленному рабочему столу или реестру, поэтому ответ Дэнни В.
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 ); } }
источник
Взгляните на эту статью, в которой показаны ключи реестра, которые вам нужно искать, и предоставлена библиотека .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, которое указывает уровень пакета обновления (где 0 - это отсутствие пакета обновления).
Чтобы быть точным, вам действительно нужно сначала установить .NET Fx 2.0 и .NET Fx 3.0, а затем проверить, установлен ли .NET 3.5. Если все три верны, вы можете проверить уровень пакета обновления.
источник
Проверьте, существует ли следующий каталог:
На 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).
источник
Предполагая, что везде присутствует имя «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"); }
источник