Wiele odpowiedzi tutaj napisano przed przejściem Roslyn (kompilatory .NET C # i VB typu open source) do wersji .NET 4.6. Więc nie pomogą ci, jeśli twój projekt celuje, powiedzmy 4.5.2, tak jak mój (odziedziczony i nie można go zmienić).
Ale możesz pobrać poprzednią wersję Roslyn z https://www.nuget.org/packages/Microsoft.Net.Compilers i zainstalować ją zamiast najnowszej wersji. Użyłem 1.3.2. (Próbowałem 2.0.1 - która wydaje się być ostatnią wersją działającą w .NET 4.5 - ale nie udało mi się go skompilować *). Uruchom to z konsoli Menedżera pakietów w VS 2013:
PM> Install-Package Microsoft.Net.Compilers -Version 1.3.2
Następnie uruchom ponownie Visual Studio. Początkowo miałem kilka problemów; musisz przywrócić domyślną wersję C # (C # 6.0 nie pojawia się na liście wersji, ale wygląda na domyślną), a następnie wyczyścić, zapisać, zrestartować VS i ponownie skompilować.
Co ciekawe, nie miałem żadnych błędów IntelliSense z powodu funkcji C # 6.0 użytych w kodzie (które były powodem, dla którego chciałem C # 6.0 w pierwszej kolejności).
* wersja 2.0.1 zwróciła błąd Zadanie „Microsoft.CodeAnalysis.BuildTasks.Csc nie mogło zostać załadowane z zestawu Microsoft.Build.Tasks.CodeAnalysis.dll. Nie można załadować pliku lub zestawu„ Microsoft.Build.Utilities.Core, wersja = 14.0.0.0, Kultura = neutralny, PublicKeyToken = b03f5f7f11d50a3a 'lub jedna z jego zależności. System nie może znaleźć określonego pliku. Potwierdź, że deklaracja jest poprawna, że zestaw i wszystkie jego zależności są dostępne i że zadanie zawiera klasa publiczna, która implementuje Microsoft.Build.Framework.ITask.
AKTUALIZACJA Jedną z rzeczy, które zauważyłem po opublikowaniu tej odpowiedzi, jest to, że jeśli zmienisz dowolny kod podczas debugowania („Edytuj i kontynuuj”), przekonasz się, że kod C # 6.0 nagle pojawi się jako błąd w czymś, co wydaje się powracać do środowisko wcześniejsze niż C # 6.0. Wymaga to ponownego uruchomienia sesji debugowania. BARDZO denerwujące, zwłaszcza w przypadku aplikacji internetowych.