Actualizar .NET Framework para versiones antiguas de Visual Studio

Iniciado por Lekim, 16 Abril 2016, 21:24 PM

0 Miembros y 1 Visitante están viendo este tema.

Lekim

ACTUALIZAR .NET FRAMEWORK PARA VERSIONES VIEJAS DE VS.NET

Antes de nada quiero comentar que este sistema que ahora muestro  no se si pudiera perjudicar de alguna manera a VS. En cualquier caso es reversible , ya que todo consiste en crear una carpeta la cual le vamos a indicar a VS que esa es la que debe usar para obtener las librerías de Framework.


Hasta lo que yo he podido comprobar todo por ahora me funciona correctamente. Pero hay muchas cosas que no uso y puede que nunca llegue a hacerlo. Así que no si esto pudiera perjudicar en algo.

Pues nada, dicho queda y voy al asunto.

Si usas versiones como VS.NET 2010   e instalas paquetes como estos:

[21/02/2011]
Microsoft .NET Framework 4 Client Profile
Microsoft .NET Framework 4 Full Profile

O bien Microsoft .NET Framework 4.5 pero no compatible con XP :
Microsoft .NET Framework 4.5

Te puedes encontrar que a pesar de ello no se actualiza el framework y NET continúa usando las versión .NET Framework Client Profile  v4.0.0.0. , o que no se pueden usar todas las clases que en teoría dispone.

NET ignorará  la nueva versión en el sistema, y no estará en la lista. En teoría debería instalarse en:

C:\Archivos de programa\Reference Assemblies\Microsoft\Framework\.NETFramework

Sin embargo, no lo hace. En realidad se instala en:

C:\WINDOWS\Microsoft.NET\Framework

Entonces lo que se puede hacer es pasar la última versión de framework manualmente a:

C:\Archivos de programa\Reference Assemblies\Microsoft\Framework\.NETFramework


Si es tu caso, al intentar usar determinadas clases como System.Web éste no dispondrá de todas sus clases y funciones. Además no estará en la lista de referencias, y ésta será bastante limitada.

Pongo como ejemplo 'System.Web' en la imagen siguiente que se puede ver solo aparecen dos componentes de System.Web



Además, por defecto, VS2010, ni VS2012 agregan System.Web.dll



Así que al importar System.Web solo están disponibles tres clases.




Para tener actualizado el Framework de VS y tener acceso a todas las clases se puede hacer lo siguiente:

PASO 1
Dirígete a:
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0

Esta carpeta contiene las librerías de .NET Framework v4.0.  

Cambia el nombre  por  [...\v4.0.bak]

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0.bak



De esta forma podrás revertir el proceso y volver al estado original si hubiese algún problema.

Una vez hecho esto, si ejecutas Visual Studio, comprobarás que al intentar crear un nuevo proyecto VS no puede seleccionar ningún Framework.




PASO 2
Dirígete a:
C:\Windows\Microsoft.NET\Framework


Y copia la carpeta más reciente de Framework que contenga en:
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework

Por ejemplo:
C:\Windows\Microsoft.NET\Framework\v4.0.30319


Lo copias en:
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework


Entonces el directorio quedaría así:


La carpeta suele ser bastante pesada. Unos 300 MB  más o menos. Realmente no es necesario copiar  todos los archivos pero resulta más cómodo.

PASO 3 CAMBIO DE NOMBRES

Hay que cambiar el nombre  de la nueva carpeta [..\v4.0.xxx] a [...\v4.0]



Cambiar también, el nombre del archivo VSList.xml que hay en:
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\RedistList

Y renombrarlo con el nombre [FrameworkList.xml]:
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\RedistList\ FrameworkList.xml



PASO 4
La carpeta [v4.0.xxx] que se ha creado y renombrado por [...\v4.0] le falta una subcarpeta, la cual está en la carpeta original [...\v4.0] que se ha renombrado [...\v4.0.bak].

Hay que copiar la carpeta en el nuevo directorio [...\v4.0].

La carpeta se llama [Profile]
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0.bak\Profile



PASO 5

Ahora dirígete a:

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0

Ordena los archivos que contiene por tipos, selecciona todas las librerías DLL y copias y reemplazas en:

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client

Te saldrá un diálogo de confirmación, dices sí a todo. Pero ojo,  no te equivoques y lo hagas en [v4.0.bak]. Recuerda que esta carpeta debe quedar intacta por si quieres volver a dejar todo como estaba.

Si ahora ejecutas VS verás que ahora sí hay un Framework v4.0 disponible.




Ahora VS cargará por defecto las librerías actualizadas, pero  no todas, ya que de modo predeterminado solo agrega estas:



Al 'Agregar referencia', la lista de librearías disponibles habrá aumentado notablemente, como se puede ver esta imagen con System.Web:




Una vez agregado:




Al importar se cargan todas las clases.




He intentado de simplificar el proceso, pero de alguna manera u otra me acaba dando errores. No se muy bien como funciona la carga de librerías en VS, pero parece que utilizando este sistema no da errores. Créeme que he probado y toqueteado de todo y al final siembre acaba dando algún error.

Por ahora parece, que de esta manera todo va bien y funciona incluso en XP.


S2s