如何判断是否安装了.NET 3.5 SP1?

Guy*_*Guy 90 installation .net-3.5

如何确定SP1是否已安装在具有.NET 3.5的服务器上?

Ray*_*Ray 134

看看HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\.其中一个必须是真的:

  • Version密钥的值应为3.5.30729.01
  • 或者SP同一个键中的值应为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();
Run Code Online (Sandbox Code Playgroud)

  • 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认同)
  • 在我的机器上,“版本”为“ 3.5.30729.5420”,而“ SP”为“ 1” (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` (2认同)

And*_*May 27

您可以从服务器使用IE 转到SmallestDotNet.这将告诉您版本,如果您已过期,还会提供下载链接.

  • 只告诉你最高版本,例如,如果你有4,它不会告诉你你是否也有3.5 sp 1 (3认同)

rp.*_*rp. 18

使用"控制面板"中的"添加/删除程序".


Mat*_*att 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 );
    }
}
Run Code Online (Sandbox Code Playgroud)


Sco*_*man 9

看看这篇文章,它显示了您需要查找的注册表项,并提供了一个可以为您执行此操作的.NET库.

首先,您应该通过查看HKLM\Software\Microsoft\.NET Framework Setup\NDP\v3.5\Install来确定是否安装了.NET 3.5,这是一个DWORD值.如果该值存在并设置为1,则安装该版本的Framework.

查看HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\SP,这是一个DWORD值,表示Service Pack级别(其中0表示没有Service Pack).

为了正确起见,您需要确保首先安装.NET Fx 2.0和.NET Fx 3.0,然后检查是否安装了.NET 3.5.如果这三个都是真的,那么您可以检查Service Pack级别.


Dan*_*rod 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).