Nuestra aplicación está construida con VS 2008, utiliza Linq y tiene Framework de destino establecido en .NET Framework3.5.¿Cómo forzar a una aplicación a usar .NET 3.5 o superior?
Funciona bien cuando solo .NET 3.5 o 4 está instalado en la máquina.
Sin embargo, en máquinas donde están instalados tanto .NET 2 (o 3.0) como .NET 4, la aplicación se carga con .NET 2 y se bloquea cuando se accede a Linq, ya que busca las bibliotecas .NET 3.5.
El uso de la etiqueta en app.config no parece ayudar, ya que especifica la versión CLR, que es 2 en el caso de .NET 3.5.
Tenga en cuenta que nuestra instalación verifica que .NET 3.5 o superior está instalado.
¿Hay una manera de decirle a la aplicación de la carga:
- la más alto CLR que encuentra, o
- CLR 4 si está instalado, y CLR 2 si CLR 4 no está instalado, o
- CLR 2 si .NET 3.5 está instalado y CLR 4 si .NET 3.5 no está instalado
(Tenga en cuenta que pregunta similar se deja sin respuesta en the Community Content section of the Element documentation)
No se puede depurar con esta configuración: da un error y .NET 4 no es compatible con VS2008. Sin embargo, funciona bien para ejecutar la versión de lanzamiento fuera de VS. – ChrisF
He tenido experiencias con aplicaciones que no se pueden iniciar si el elemento no está al final del archivo (justo antes de configuration>), al menos en Framework v3.5. Vale la pena intentar mover esta pieza de configuración hacia el final del archivo si tiene problemas de inicio. –
SteveWilkinson
Si solo dejé v4.0 como SupportedRuntime y en el sistema solo es v4.5, ¿se teke v.4.5 de todos modos? ¿Cómo forzar el uso de una sola versión? – Kamilos