¿Cómo puedo averiguar si el SP1 se ha instalado en un servidor que tiene .NET 3.5?¿Cómo puedo saber si .NET 3.5 SP1 está instalado?
Respuesta
Use Agregar/Quitar programas del Panel de control.
Mire HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\
. Uno de ellos debe ser verdad:
Version
El valor de esa clave debe ser 3.5.30729.01- o el valor
SP
en la misma clave debe ser
En C# (tomado del primer comentario), podría hacer algo en estas líneas:
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();
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").Encadenar(); –
En mi máquina, 'Version' es' 3.5.30729.5420' y 'SP' es' 1' –
En la línea de comando: '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' –
Puede ir al SmallestDotNet usando IE desde el servidor. Eso le dirá la versión y también proporcionará un enlace de descarga si no está actualizado.
Solo te dice la versión más alta, por ejemplo si tiene 4, no le dirá si también tiene 3.5 sp 1 – codeulike
Suponiendo que el nombre está en todas partes "Microsoft .NET Framework 3.5 SP1", puede utilizar esto:
string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
{
return rk.GetSubKeyNames().Contains("Microsoft .NET Framework 3.5 SP1");
}
+1, la manera más fácil hasta el momento de verificar programáticamente si 3.5 SP1 está instalado, en realidad, si funcionó. Lo intenté, no funciona para mí, siempre devuelve falso. –
Al pasar por la colección devuelta por GetSubKeyNames(), el nombre de texto sin formato se usa para algunos productos, para algunos, como los frameworks .net, se están utilizando los identificadores del producto {1ea1f -...}. Es por eso que no se puede encontrar. –
Tome un vistazo a este article que muestra las claves de registro que hay que buscar y proporciona una Biblioteca .NET que hará esto por usted.
En primer lugar, debe determinar si se instala .NET 3.5 consultando HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ Install, que es un valor DWORD. Si ese valor está presente y se establece en 1, entonces esa versión del Framework está instalada.
Mire HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ SP, que es un valor DWORD que indica el nivel del Service Pack (donde 0 no es Service Pack).
Para tener las cosas correctas, realmente necesita asegurarse de que .NET Fx 2.0 y .NET Fx 3.0 estén instalados primero y luego verifique si .NET 3.5 está instalado. Si los tres son verdaderos, entonces puede verificar el nivel del paquete de servicio. Se existe el siguiente directorio
se ha cambiado el enlace del artículo, aquí está la nueva ubicación: http://www.codeproject.com/KB/dotnet/frameworkversiondetection.aspx – Drake
Comprobar:
En las máquinas de 64 bits: % SYSTEMROOT% \ Microsoft.NET \ Framework64 \ v3.5 \ Microsoft .NET Framework 3.5 SP1 \
En las máquinas de 32 bits: % SYSTEMROOT% \ Microsoft.NET \ Framework \ v3.5 \ Microsoft .NET Framework 3.5 SP1 \
Donde% SYSTEMROOT% es la variable del entorno SYSTEMROOT (por ejemplo, C: \ Windows).
Vine a esta página mientras trataba de descubrir cómo detectar las versiones de frameworks instaladas en un servidor sin acceso a escritorio remoto o registro, por lo que la respuesta de Danny V funcionó para mí.
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);
}
}
Funcionó como esperaba para mí. Acabo de crear un nuevo proyecto de sitio web, agregué el código y lo puse en el recurso compartido, luego solicité la página. – XIII
- 1. ¿Cómo puedo saber si tengo instalado Visual Studio 2008 SP1?
- 2. ¿Cómo puedo saber si está instalado .NET 4.02?
- 3. ¿Cómo puedo saber si SP1 está instalado en Windows Server 2008 R2 Standard?
- 4. La mejor forma de determinar si .NET 3.5 está instalado
- 5. ¿Se necesita reiniciar .NET Framework 3.5 SP1?
- 6. Entrega de .Net 3.5 SP1
- 7. ¿Cómo saber si asp.net 3.5 sp1 y asp.net mvc están instalados en el servidor?
- 8. ¿Cómo puedo saber si el SP1 se ha instalado en VS2008?
- 9. ¿Es seguro instalar .Net 3.5 SP1 después de que .Net 4.0 RC ya haya sido instalado?
- 10. Cambios de XmlSerializer en .NET 3.5 SP1
- 11. API web para .Net 3.5 SP1?
- 12. Detectar .NET Framework 3.5 SP1 Dependencia (cmp. 3.5 w/o SP1)
- 13. ¿Cómo saber si el componente VBA de Office está instalado?
- 14. Cómo comprobar si .Net Framework está instalado [C#/WPF]
- 15. Cómo saber si node.js está instalado o no
- 16. PHP - ¿Cómo saber si X-Sendfile está disponible e instalado?
- 17. usando WIX3.6 para instalar .NET Framework 3.5 SP1 con Burn
- 18. System.MissingMethodException - 3.5 SP1 versiones demonios
- 19. ¿Puede VS.NET 2010/MSBUILD producir XmlSerializers para .NET 3.5 SP1?
- 20. ¿Cómo fallar correctamente si .NET no está instalado?
- 21. Comprobando si .NET está instalado desde la línea de comandos
- 22. ¿Cómo se puede desinstalar Visual Studio 2008 SP1 w/.Net 3.5 SP1?
- 23. Uso de EF 4 en .NET 3.5 SP1
- 24. Html.AntiForgeryToken() causa errores después de actualizar a .NET 3.5 SP1
- 25. ¿Dónde está instalado microsoft.office.tools.excel.dll?
- 26. Verificar si Solidworks está instalado?
- 27. .net 3.5 SP1 Bootstrapper no encontrado para la configuración
- 28. .NET framework compatibility: 3.5 SP1 & 4.0 Client Profile
- 29. ¿Alternativa a HttpUtility para el cliente .NET 3.5 SP1?
- 30. 'Requisitos previos de .NET Framework 3.5 SP1 Client Profile
Vaya figura. Más tarde, pensé que había perdido un punto "programáticamente" para su pregunta, Guy. –