Viele der Antworten hier wurden geschrieben, bevor Roslyn (die Open-Source-Compiler .NET C # und VB) auf .NET 4.6 umstieg. Sie helfen Ihnen also nicht, wenn Ihre Projektziele beispielsweise 4.5.2 sind, wie meine (geerbt und nicht änderbar).
Sie können jedoch eine frühere Version von Roslyn unter https://www.nuget.org/packages/Microsoft.Net.Compilers herunterladen und diese anstelle der neuesten Version installieren. Ich habe 1.3.2 verwendet. (Ich habe 2.0.1 ausprobiert - dies scheint die letzte Version zu sein, die unter .NET 4.5 ausgeführt wird - aber ich konnte es nicht zum Kompilieren bringen *.) Führen Sie dies über die Package Manager-Konsole in VS 2013 aus:
PM> Install-Package Microsoft.Net.Compilers -Version 1.3.2
Starten Sie dann Visual Studio neu. Ich hatte anfangs ein paar Probleme; Sie müssen die C # -Version auf den Standard zurücksetzen (C # 6.0 wird nicht in der Versionsliste angezeigt, scheint aber zum Standard gemacht worden zu sein), dann bereinigen, speichern, VS neu starten und neu kompilieren.
Interessanterweise hatte ich aufgrund der im Code verwendeten C # 6.0-Funktionen keine IntelliSense-Fehler (was der Grund dafür war, dass C # 6.0 überhaupt gewünscht wurde).
* Version 2.0.1 hat einen Fehler ausgelöst. Die Aufgabe "Microsoft.CodeAnalysis.BuildTasks.Csc" konnte nicht aus der Assembly "Microsoft.Build.Tasks.CodeAnalysis.dll" geladen werden. Datei oder Assembly "Microsoft.Build.Utilities.Core, Version" konnte nicht geladen werden = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a 'oder eine seiner Abhängigkeiten. Das System kann die angegebene Datei nicht finden. Bestätigen Sie, dass die Deklaration korrekt ist, dass die Assembly und alle ihre Abhängigkeiten verfügbar sind und dass die Aufgabe a enthält öffentliche Klasse, die Microsoft.Build.Framework.ITask implementiert.
UPDATE Eine Sache, die mir seit dem Posten dieser Antwort aufgefallen ist, ist, dass wenn Sie während des Debuggens einen Code ändern ("Bearbeiten und fortfahren"), Sie feststellen, dass Ihr C # 6.0-Code plötzlich als Fehler in dem angezeigt wird, worauf er zurückzugreifen scheint eine Pre-C # 6.0-Umgebung. Dies erfordert einen Neustart Ihrer Debug-Sitzung. Sehr ärgerlich vor allem für Webanwendungen.