Comment savoir si .NET 3.5 SP1 est installé?

Comment puis-je savoir si SP1 a été installé sur un serveur disposant de .NET 3.5?

Utilisez Ajout / Suppression de programmes du Panneau de configuration.

Regardez le programme d’ HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\ . L’un d’eux doit être vrai:

  • La valeur de la Version dans cette clé doit être 3.5.30729.01
  • Ou la valeur de SP dans la même clé devrait être 1

En C # (pris du premier commentaire), vous pourriez faire quelque chose dans ce sens:

 const ssortingng name = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5"; RegistryKey subKey = Registry.LocalMachine.OpenSubKey(name); var version = subKey.GetValue("Version").ToSsortingng(); var servicePack = subKey.GetValue("SP").ToSsortingng(); 

Vous pouvez aller sur SmallestDotNet en utilisant IE depuis le serveur. Cela vous indiquera la version et fournira également un lien de téléchargement si vous n’êtes pas à jour.

Je suis arrivé à cette page en essayant de comprendre comment détecter les versions du framework installées sur un serveur sans access au bureau ou au registre distant, alors la réponse de Danny V a fonctionné pour moi.

 ssortingng path = System.Environment.SystemDirectory; path = path.Subssortingng( 0, path.LastIndexOf('\\') ); path = Path.Combine( path, "Microsoft.NET" ); // C:\WINDOWS\Microsoft.NET\ ssortingng[] versions = new ssortingng[]{ "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( ssortingng version in versions ) { ssortingng versionPath = Path.Combine( path, version ); DirectoryInfo dir = new DirectoryInfo( versionPath ); if( dir.Exists ) { Response.Output.Write( "{0}
", version ); } }

Jetez un oeil à cet article qui montre les clés de registre que vous devez rechercher et fournit une bibliothèque .NET qui fera cela pour vous.

Tout d’abord, vous devez déterminer si .NET 3.5 est installé en consultant HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ Install, qui est une valeur DWORD. Si cette valeur est présente et définie sur 1, cette version de Framework est installée.

Regardez le programme d’installation de HKLM \ Software \ Microsoft \ NET Framework \ NDP \ v3.5 \ SP, qui est une valeur DWORD qui indique le niveau du Service Pack (où 0 correspond à aucun service pack).

Pour être correct sur les choses, vous devez vous assurer que .NET Fx 2.0 et .NET Fx 3.0 sont installés en premier, puis vérifiez si .NET 3.5 est installé. Si tous les trois sont vrais, vous pouvez vérifier le niveau du service pack.

Check est que le répertoire suivant existe:

Dans les ordinateurs 64 bits:% SYSTEMROOT% \ Microsoft.NET \ Framework64 \ v3.5 \ Microsoft .NET Framework 3.5 SP1 \

Dans les ordinateurs 32 bits:% SYSTEMROOT% \ Microsoft.NET \ Framework \ v3.5 \ Microsoft .NET Framework 3.5 SP1 \

Où% SYSTEMROOT% est la variable d’environnement SYSTEMROOT (par exemple, C: \ Windows).

En supposant que le nom est partout “Microsoft .NET Framework 3.5 SP1”, vous pouvez utiliser ceci:

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