2014-06-26 23 views
20

Czy można używać kompilatora Roslyn i nowych funkcji C# 6.0 ze starszymi wersjami środowiska .NET Runtime (na przykład .NET 4.0)?Roslyn i .NET Runtime wersja

Na przykład chcę użyć członów o treści wyrażeń (int S => x + y; zamiast int S { get { return x + y; } }) w aplikacji .NET 4.0.

+1

Co byś pomyślał, że będzie? –

+0

W jaki sposób kompilator * kompilował * metodę, o której nie wiedział (ponieważ nie istniał, gdy został utworzony) na [IL] (http://en.wikipedia.org/wiki/Common_Intermediate_Language)? –

+12

Jest względnie prawdopodobne, że może, ponieważ może to być całkowicie zaimplementowane za pomocą wsparcia kompilatora i wyemitować IL, które może uruchomić środowisko CLR 4.0. Podobnie jak w przypadku kompilatora C# 3.0 możesz użyć właściwości automatycznych w projekcie docelowym .Net 2.0. http://stackoverflow.com/questions/9393982/why-are-my-auto-implemented-properties-working-in-asp-net-2-0 – shf301

Odpowiedz

13

Nowe funkcje C# 6.0 nie zależą od obsługi frameworków, więc tak, aplikacja skompilowana z kompilatorem C# 6.0 będzie działać na platformie .NET 4.0, zakładając oczywiście, że kierujesz ją do .NET 4.0 w pliku projektu na pierwszym miejscu.

+0

Czy zmieniło się to w ogóle od czerwca? Nadal będziemy mogli używać nowego kompilatora z .net 4.0? – DLeh

+1

Nadal prawdą, iw tym momencie C# 6.0 jest dość zamknięty, więc jest mało prawdopodobne, aby się zmienić. –

+1

dzięki za aktualizację. nie można znaleźć tych informacji w innym miejscu. Nasz klient nadal potrzebuje wsparcia XP, cieszę się, że będziemy mogli dokonać aktualizacji do Roslyn – DLeh

1

już teraz Roslyn kompilator C# i oprzyrządowania nie można uruchomić na .NET 4.0

Można z pewnością cross-kompilacji dla .NET 4.0, ale do uruchomienia kompilatora sama potrzeba przynajmniej .NET 4.5

Powiązane problemy