2011-08-16 27 views
5

Ho sviluppato una soluzione .NET composta da diversi assembly, la maggior parte dei quali sono piccoli assembly helper destinati alla versione 2.0 di .NET Framework. Gli assembly rimanenti sono applicazioni Web MVC 3, che devono necessariamente raggiungere la versione 4.0 di .NET Framework. La mia soluzione non ha altre dipendenze esterne oltre a .NET e MVC Frameworks.È possibile eseguire gli assembly .NET 2.0 con .NET 4.0?

La mia domanda è la seguente: Quando distribuisco questa soluzione ai clienti, devo distribuire entrambe le versioni di .NET Framework o posso semplicemente distribuire la versione 4.0? Gli assembly .NET 2.0 possono essere eseguiti con .NET 4.0?

+0

Tutte e tre le risposte sono ugualmente validi, ma, dato che posso accettare solo una, ho accettato l'uno, che è stato pubblicato prima. – pyon

risposta

3

È necessaria solo l'ultima versione. È compatibile verso il basso.

+0

Questa è una verità qualificata. Se la mia risposta qui sotto. – mhvelplund

1

la risposta è sì, assemblee sviluppato per .NET 2.0 verrà eseguito correttamente in .NET 4.0

7

Sì, le dipendenze incorporati nel montaggio su .NET 2.0 assembly vengono tradotti automaticamente alla loro versione 4.0. Ma funziona con una versione di quegli assembly su cui non è mai stato testato. Sono altamente compatibili ma contengono diverse correzioni di bug, bug di cui potresti inconsapevolmente avere una dipendenza. Nessuno può darti una garanzia al 100%.

Basta provarlo.

+0

Fortunatamente, i miei assembly .NET 2.0 sono piuttosto semplici. Molti di questi sono solo semplici tipi di dati, cioè i modelli per le applicazioni MVC; e i pochi, che non sono solo tipi POD, sono solo classi helper, che recuperano i dati da un database e riempiono le istanze di quei tipi POD con esso. – pyon

0

Sì e no (almeno per .Net 4.5). Anche se è compatibile, il valore predefinito è quello di eseguire il codice della versione Net associato come notato here:

.NET Framework 4.5 e le sue point release sono compatibili con le applicazioni che sono state costruite con le versioni precedenti di .NET Framework. In altre parole, le app e i componenti creati con le versioni precedenti funzioneranno senza modifiche su .NET Framework 4.5. Tuttavia, per impostazione predefinita, le app vengono eseguite sulla versione del Common Language Runtime per il quale sono state sviluppate, quindi potrebbe essere necessario fornire un file di configurazione per abilitare l'esecuzione dell'app su .NET Framework 4.5. Per ulteriori informazioni, consulta la sezione Compatibilità versione per le app in precedenza in questo articolo.

Dopo aver aggiunto un file di MyLovely.exe.config tutto ha funzionato bene:

<configuration> 
    <startup> 
    <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 
Problemi correlati