2008-10-13 3 views

ответ

18

Используйте Добавить/Удалить программы с панели управления.

+0

Go figure. Позже я подумал, что я пропустил «программный» вопрос к вашему вопросу, Гай. – 2009-05-11 02:58:21

132

Посмотрите на HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\. Один из них должен быть правдой:

  • Значение Version в этом ключе должно быть 3.5.30729.01
  • или значение SP в том же ключе должен быть

В 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(); 
+8

const string name = @ "SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v3.5"; RegistryKey subKey = Registry.LocalMachine.OpenSubKey (имя); var version = subKey.GetValue («Версия»). ToString(); var servicePack = subKey.GetValue ("SP").Нанизывать(); – 2009-05-05 20:54:40

+1

На моей машине `Version` является` 3.5.30729.5420` и `SP` является` 1` – 2013-07-26 15:03:34

+2

В командной строке: `reg query 'HKLM \ SOFTWARE \ Microsoft \ NET Framework \ NDP \ v3.5 \ V Версия` `reg query" HKLM \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v3.5 "/ V SP` – 2013-07-26 15:04:32

27

Вы можете перейти на SmallestDotNet, используя IE с сервера. Это сообщит вам версию, а также предоставит ссылку для загрузки, если вы устарели.

+3

Показывает только самую высокую версию, например, если у вас 4, это не скажет вам, есть ли у вас 3.5 sp 1 – codeulike 2013-02-05 16:46:08

2

Предполагая, что имя везде «Microsoft .NET Framework 3.5 с пакетом обновления 1», вы можете использовать это:

string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; 
using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey)) 
{ 
    return rk.GetSubKeyNames().Contains("Microsoft .NET Framework 3.5 SP1"); 
} 
+0

+1, самый простой способ до сих пор программно проверить, установлен ли 3.5 SP1 - на самом деле, если он сработает. Я попробовал, он не работает для меня, он всегда возвращает false. – 2011-07-28 05:48:48

9

Взгляните на эту article который показывает ключи реестра, нужно искать и обеспечивает .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. Если все три являются истинными, то вы можете проверить уровень пакета обновления.

4

Проверить это следующий каталог существует:

В 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).

12

Я пришел на эту страницу, пытаясь понять, как определить версии фреймворка, установленные на сервере, без доступа к удаленному рабочему столу или реестру, поэтому ответ Дэнни 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); 
    } 
}