2014-07-14 11 views
7

Ho scritto app console C#. .NET Framework è impostato per impostazione predefinita alla versione 4.5. Voglio sapere se c'è un modo, per testare app con versioni precedenti di .NET framework o test, quale versione di app framework ha effettivamente bisogno di eseguire (senza riguardo al framework targettype).Come determinare la versione minima necessaria di .NET framework per eseguire la mia app

+2

modificare il framework di destinazione nel progetto, verificare se è ancora compilato? –

+0

Dipende dal codice che hai usato. Se hai usato 4.5 libs avrai bisogno di v4.5. –

+0

@La buona lettura, anche quello non è strettamente vero; è disponibile una gamma di pacchetti 'Microsoft.Bcl' che aggiungono funzionalità BCL successive in framework precedenti; un sacco di nuove caratteristiche del compilatore che dipendono da queste caratteristiche funzioneranno anche contro i framework precedenti. Tornando ancora più indietro, ci sono cose come LINQBridge che aggiunge alcune funzionalità 3.5 in 2.0. –

risposta

1

Il mio problema è stato per quanto riguarda la biblioteca System.Linq, che non è supportato in .NET quadro 2.0. Come puoi leggere nei commenti, ho risolto questo problema usando LINQBridge da nuGet. L'altro problema era che il framework 2.0 non contiene il metodo pubblico Dispose for HashAlgorithm. Ho risolto questo problema con il metodo Clear. Tutti gli altri errori sono stati risolti con la reinstallazione di tutti i pacchetti di nuget.

+0

Non sai che Microsoft non supporta più .NET 2.0 a meno che non sia applicato .NET 3.5 SP1? Se lo sai, dovresti riuscire a fermarti adesso e concentrarti su .NET 3.5+. Non perdere altro tempo in quello. http://blogs.technet.com/b/lifecycle/archive/2010/04/30/net-framework-3-5-sp1-and-later-now-supported-as-part-of-microsoft-windows. aspx –

2

È possibile aggiungere alcune voci al file app.config per scegliere come target una particolare versione del framework, per sovrascrivere la versione con cui è stato creato. Ovviamente è comunque necessario verificare che funziona con queste versioni, ma questo consente di eseguire su diverse versioni del framework:

<configuration> 
    <!-- this is used if they only have net 4 installed--> 
    <!-- 
    <runtime> 
    <NetFx40_LegacySecurityPolicy enabled="true"/> 
    </runtime> 
    --> 
    <startup> 
    <supportedRuntime version="v2.0.50727"/> 
    <supportedRuntime version="v4.0.30319"/> 
    </startup> 
</configuration> 
+0

+1, forse potresti aggiungere un'osservazione o un suggerimento sull'elemento ''? – stakx

Problemi correlati