2008-10-13 147 views

回答

18

使用控制面板中的添加/刪除程序。

+0

去圖。後來,我想我錯過了一個「編程式」指向你的問題,Guy。 – 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(name); var version = subKey.GetValue(「Version」)。ToString(); var servicePack = subKey.GetValue(「SP」)。的ToString(); – 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 Setup \ NDP \ v3.5」/ V Version` `reg query「HKLM \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v3.5」/ V SP` – 2013-07-26 15:04:32

27

您可以使用服務器上的IE訪問SmallestDotNet。這將告訴你的版本,並提供一個下載鏈接,如果你過時了。

+3

雖然只告訴你最高版本,例如如果你有4個,它不會告訴你你是否也有3.5 sp 1 – codeulike 2013-02-05 16:46:08

2

假設名稱是無處不在「的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"); 
} 
+0

+1,迄今爲止以編程方式檢查是否安裝了3.5 SP1的最簡單方法 - 實際上,如果它工作正常。我試過了,它不適合我,它總是返回false。 – 2011-07-28 05:48:48

9

看看這個article這表明你需要尋找的註冊表項,並提供一.NET庫,將爲您做到這一點。

首先,您應該通過查看HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ Install來確定是否安裝了.NET 3.5,這是一個DWORD值。如果該值存在並設置爲1,則安裝該版本的Framework。

查看HKLM \ Software \ Microsoft \ NET Framework安裝\ NDP \ v3.5 \ SP,這是一個DWORD值,指示Service Pack級別(其中0不是Service Pack)。

爲了正確處理事情,您需要確保首先安裝.NET Fx 2.0和.NET Fx 3.0,然後檢查是否安裝了.NET 3.5。如果三者都是真的,那麼您可以檢查服務包級別。

4

檢查是不是下面的目錄存在:

在64位機: %SYSTEMROOT%\ Microsoft.NET \ Framework64 \ v3.5版本\ Microsoft .NET框架3.5 SP1 \

在32位機: %SYSTEMROOT%\ Microsoft.NET \ Framework \ v3.5 \ Microsoft .NET Framework 3.5 SP1 \

其中%SYSTEMROOT%是SYSTEMROOT環境變量(例如C:\ Windows)。

12

我在試圖弄清楚如何檢測服務器上安裝的框架版本而無需訪問遠程桌面或註冊表時來到了此頁面,因此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); 
    } 
} 
相關問題