La nostra applicazione è costruita con VS 2008, utilizza Linq e ha Target Framework impostato su .NET Framework3.5.Come forzare un'applicazione ad utilizzare .NET 3.5 o successivo?
Funziona correttamente quando sulla macchina è installato solo .NET 3.5 o 4.
Tuttavia, su macchine in cui sono installati entrambi .NET 2 (o 3.0) e .NET 4, l'applicazione viene caricata con .NET 2 e si arresta in modo anomalo quando si accede a Linq, mentre cerca le librerie .NET 3.5.
L'utilizzo del tag in app.config non sembra essere di aiuto, in quanto specifica la versione CLR, che è 2 nel caso di .NET 3.5.
Si noti che la nostra installazione verifica che .NET 3.5 o superiore sia installato.
C'è un modo per dire l'applicazione a carico:
- il più alto CLR che trova, o
- CLR 4 se installato, e CLR 2 se CLR 4 non è installato, oppure
- CLR 2 se .NET 3.5 è installato e CLR 4 se .NET 3.5 non è installato
(Si noti che domanda simile è rimasto senza risposta in the Community Content section of the Element documentation)
Impossibile eseguire il debug con questa configurazione: genera un errore e .NET 4 non è supportato da VS2008. Tuttavia, funziona bene per eseguire la versione di rilascio al di fuori di VS. – ChrisF
Ho avuto esperienze con l'avvio delle app se l'elemento non si trova alla fine del file (poco prima di configuration>), almeno su Framework v3.5. Vale la pena provare a spostare questa parte di configurazione verso la fine del file se si riscontrano problemi di avvio. –
SteveWilkinson
Se ho lasciato solo v4.0 come SupportedRuntime e nel sistema è solo v4.5, comunque lo farà il v.4.5? Come forzare l'utilizzo di una sola versione? – Kamilos