Ich habe die neuesten Funktionen in C # 6.0 durchgearbeitet und bin nur einem Beispiel für den automatischen Eigenschaftsinitialisierer gefolgt.
class NewSample
{
public Guid Id { get; } = Guid.NewGuid();
}
aber meine IDE hat die Syntax nicht erkannt.
Ich frage mich, wie ich C # 6.0 in Visual Studio 2013 aktivieren kann. Das von mir verwendete Zielframework ist 4.5.1.
c#
visual-studio
visual-studio-2013
c#-6.0
Hassaan
quelle
quelle
Antworten:
Informationen für veraltete Prerelease-Software:
Nach dieser ist es nur ein installieren und geht für Visual Studio 2013:
Holen Sie sich einfach die Dateien von https://github.com/dotnet/roslyn und Sie können loslegen.
Sie müssen wissen, dass es sich um eine veraltete Version der dort implementierten Spezifikationen handelt, da das Paket für Visual Studio 2013 nicht mehr aktualisiert wird :
Wenn Sie also die neueste Version verwenden möchten, müssen Sie Visual Studio 2015 herunterladen .
quelle
Unter VS2013 können Sie die neuen Compiler als Nuget-Paket im Projekt installieren . Auf diese Weise benötigen Sie weder VS2015 noch einen aktualisierten Build-Server.
https://www.nuget.org/packages/Microsoft.Net.Compilers/
Mit dem Paket können Sie C # 6.0-Code / -Syntax verwenden / erstellen. Da VS2013 die neue C # 6.0-Syntax nicht nativ erkennt, werden Fehler im Code-Editor-Fenster angezeigt, obwohl sie einwandfrei funktioniert .
Wenn Sie Resharper verwenden, erhalten Sie bei C # 6-Funktionen verschnörkelte Linien, aber die Glühbirne bietet Ihnen die Option, die C # 6.0-Unterstützung für dieses Projekt zu aktivieren (Einstellung in .DotSettings gespeichert).
Wie von @ stimulpy77 erwähnt: Für die Unterstützung in MVC Razor-Ansichten benötigen Sie ein zusätzliches Paket (für diejenigen, die die Kommentare nicht lesen).
Wenn Sie vollständige C # 6.0-Unterstützung wünschen, müssen Sie VS2015 installieren.
quelle
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:
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.
quelle
Es ist erwähnenswert, dass die Erstellungszeit für VS 2015-Benutzer verlängert wird, nachdem :
Diejenigen, die VS 2015 verwenden und dieses Paket in ihren Projekten behalten müssen, können eine längere Erstellungszeit beheben .
Bearbeiten Sie die Datei
packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props
und bereinigen Sie sie. Die Datei sollte folgendermaßen aussehen:Dadurch wird ein Projekt so erstellt, wie es vor dem Hinzufügen eines
Microsoft.Net.Compilers
Pakets warquelle
Wenn Sie über Resharper verfügen, können Sie in Visual Studio 2013 alle C # 6.0-Funktionen verwenden.
Sie müssen Resharper Build und voilá aktivieren! Wählen Sie unter Resharper-Optionen -> Build - Resharper-Build aktivieren und unter "MSBuild.exe-Version verwenden" die Option "Neueste Installation".
Auf diese Weise erstellt Resharper Ihre C # 6.0-Projekte und unterstreicht den C # 6.0-Code nicht als ungültig.
Ich benutze dies auch, obwohl ich Visual Studio 2015 habe, weil:
Ich stelle dies hier ein, da ich schon seit einiger Zeit nach einer Lösung für dieses Problem gesucht habe und es vielleicht jemand anderem hilft.
quelle
Es scheint ein Missverständnis zu geben. Anstatt zu versuchen, VS2013 zu patchen, antworten Sie hier von einem Microsoft-Mitarbeiter: https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 60-jemals-unterstützt-von-vs-2013? Forum = roslyn
Lesen Sie es also bitte und installieren Sie VS2015.
quelle