Entrambi correranno nello stesso CLR (4.5 in questo caso).
Con .NET < = 3.5, è possibile avere casi in cui verranno caricate più versioni dello stesso assembly (quindi, potrebbe accadere che ADO.NET carichi la versione 4.0 e carichi 4.5 nello stesso dominio dell'app). Per quanto ne so, l'hanno eliminato con CLR 4.0 (o almeno lo hanno reso molto meno).
Modifica: BTW: c'è una differenza tra il CLR (il runtime che esegue il codice) e le versioni degli assiemi caricati.
La versione di CLR regola le funzionalità del processo: cosa può fare, quali versioni degli assiemi può caricare. Ad esempio, CLR 4.5 può caricare praticamente tutti gli assembly (1.0 -> 4.5). Funzioneranno tutti sotto il 4.5 CLR. Inoltre, non è possibile eseguire due versioni di CLR dalla stessa banda compatibile nello stesso processo. CLR 4.5 e 4.0 entrambi sono considerati la stessa compat banda, quindi verrà caricato uno o l'altro. CLR 1.0, 1.1, 2.0, 3.0 e 3.5 sono tutti considerati nella stessa compat banda, quindi solo uno di essi può essere caricato. È tuttavia possibile caricare CLR 3.5 e CLR 4.5 contemporaneamente.
fonte
2012-03-29 08:05:13
Ho pensato che se si fa riferimento a un assembly che ha come target un framework diverso, si sono verificati errori di compilazione. –
Solo se c'è un'interruzione binaria (che sono pochi e lontani tra loro) o se si sta tentando di fare riferimento a un assembly che punta a una versione CLR più avanzata (quindi, un assembly 2.0 che fa riferimento a un assembly 4.0 si interromperà. L'opposto non lo farà) –
I penso che si romperà anche se si specifica una versione diversa dell'assembly. Ad esempio, hai assembly build in 4.0 e hai specificato in web.config (o dovunque sia stato caricato da) 3.5 – Thea