2013-01-19 2 views
7

Non riesco a capire quale versione della libreria di runtime F # Core dovrebbe essere utilizzata in combinazione con la piattaforma Mono (.NET 3.5).F # compiler e numero di versione runtime confusione

  • Installato con Microsoft .Net 4.5 vengono due versioni del runtime FSharp Core, 2.3.0.0 e 4.3.0.0. La mia ipotesi è che il primo sia utilizzato in .NET Framework 2.0 e versioni successive e che il secondo possa essere utilizzato solo da .NET 4.0 o versioni successive. Questa supposizione è corretta?
  • Poiché FSharp è ora open source e disponibile su Github, posso controllare un tag recente, crearlo e utilizzare la DLL di FSharp.Core che produce nel mio progetto. Quello che non so è come il numero di versione sull'open source FSharp sia correlato a quelli closed-source inclusi nel pacchetto .NET? versione del compilatore
  • L'open source è ora 3.0.25 e il compilatore closed source sembra essere 4.0, sono confuso:
    • Come funziona la versione FSharp.Core Runtime (anche 3.0.25) dalla open source progetto correlato alla versione closed source 2.3.0.0? Dato che il numero 3.0.25 è molto più alto di 2.3.0.0, presumo che la versione open source sia molto più recente, ma non ne sono sicuro, dal momento che non so se i numeri di versione possano essere confrontati.
    • NuGet offre invece FSharp.Core 2.0 e 4.0, che sembra essere piuttosto vecchio. Perché la nuova versione non è ancora stata caricata in NuGet?

risposta

6

Stai confondendo due diversi tipi di numeri di versione; non che ti biasimo, ma capisco come potrebbe essere fonte di confusione se sei nuovo su F # e/o su .NET.

  • Corretto. La versione 2.3.0.0 di FSharp.Core è destinata all'uso con .NET 2.0 (e 3.0 e 3.5, che sono (sostanzialmente) versioni estese di .NET 2.0); la versione 4.3.0.0 è per .NET 4.0 e 4.5.
  • L'ultima versione di F # è F # 3.0. Questa è la versione fornita con Visual Studio 2012. NOTA: Qui, 3.0 è la versione lingua, che non ha nulla a che fare con quale versione di .NET Framework si desidera eseguire. Il repository F # su GitHub utilizza tag di revisione (ovvero, la .25 parte della 3.0.25), quindi è più facile capire se è necessario eseguire l'aggiornamento a una versione più recente; le modifiche di solito sono solo script di compilazione, programmi di installazione, ecc. - ma raramente sono modifiche al compilatore e/o alle librerie F #.
  • Se si genera il codice dal repository GitHub F # e l'assembly FSharp.Core compilato ha la versione 3.0.25, si prega di aprire un nuovo numero su Github a questo proposito - dovrebbe avere gli stessi numeri di versione del "vero" F # librerie da Microsoft. L'unica differenza dovrebbe essere nella chiave pubblica con cui sono firmati gli assembly.
  • Non so perché le nuove versioni non siano su NuGet, probabilmente si è appena dimenticato. Ora aprirò un problema a questo proposito per assicurarmi che vengano aggiunti al più presto.
+0

Grazie per aver risposto alle mie domande in modo rapido e chiaro. –