2014-06-26 2 views
20

È possibile utilizzare il compilatore Roslyn e le nuove funzionalità di C# 6.0 con le versioni precedenti di .NET Runtime (ad esempio, .NET 4.0)?Roslyn e .NET Runtime versione

Ad esempio, desidero utilizzare i membri con espressione del corpo (int S => x + y; anziché int S { get { return x + y; } }) nell'applicazione .NET 4.0.

+1

Cosa ti fa pensare che sarebbe? –

+0

In che modo un compilatore * compila * un metodo di cui era inconsapevole (perché non esisteva quando è stato creato) in [IL] (http://en.wikipedia.org/wiki/Common_Intermediate_Language)? –

+12

È relativamente probabile che potrebbe, dal momento che questo potrebbe essere completamente implementato tramite il supporto del compilatore ed emettere IL che può essere eseguito con 4.0 CLR. Proprio come è possibile utilizzare Proprietà automatiche in un progetto di targeting .Net 2.0 se si compila con il compilatore C# 3.0. http://stackoverflow.com/questions/9393982/why-are-my-auto-implemented-properties-working-in-asp-net--2-2 – shf301

risposta

13

Le nuove funzionalità di C# 6.0 non dipendono dal supporto di framework, quindi sì, un'app compilata con il compilatore C# 6.0 verrà eseguita su .NET 4.0, assumendo che si specifichi che si sta utilizzando .NET 4.0 nel proprio file di progetto. innanzitutto.

+0

è cambiato da giugno? Saremo ancora in grado di utilizzare il nuovo compilatore con .net 4.0? – DLeh

+1

Ancora vero, ea questo punto C# 6.0 è abbastanza bloccato, quindi è improbabile che cambi. –

+1

grazie per l'aggiornamento. non ho trovato queste informazioni altrove. Il nostro cliente ha ancora bisogno del supporto per XP, sono contento di vedere che saremo in grado di aggiornare a Roslyn – DLeh

1

A partire da ora Roslyn compilatore C# e utensili non può essere eseguito su .NET 4.0

Si può certamente compilazione incrociata for .NET 4.0, ma per eseguire il compilatore stesso è necessario almeno .NET 4.5