Hintergrund
Wir haben ein Projekt, das wir in VS 2015 mit aktiviertem C # 6 entwickeln und das gelegentlich von Entwicklern geöffnet werden muss, die VS 2013 ohne C # 6 verwenden.
Wir haben nicht die Absicht, C # 6 in dieser speziellen Lösung zu verwenden (so oft ich möchte).
Problem
Visual Studio und ReSharper schlagen hilfreiche C # 6-Sprachkonstrukte vor, die die Lösung in früheren Versionen von Visual Studio ohne C # 6-Unterstützung funktionsunfähig machen.
Ich habe die ReSharper C # 6-Unterstützung deaktiviert, kann jedoch die C # -Funktionen in der gesamten Lösung anscheinend nicht deaktivieren / einschränken.
Frage
Wie beschränke ich C # auf C # 5-Funktionen innerhalb einer Lösung oder in Visual Studio 2015?
c#
visual-studio
c#-5.0
visual-studio-2015
c#-6.0
SeanKilleen
quelle
quelle
Antworten:
Sie können die Sprachfunktion für jedes Projekt separat
Properties => Build tab => Advanced button => Language Version
festlegen, indem Sie Ihre bevorzugte Version aufrufen und festlegen.Sie sollten sich darüber im Klaren sein, dass weiterhin die neue "C # 6.0" .Net Compiler Platform (Codename Roslyn) verwendet wird. Dieser Compiler ahmt jedoch das Verhalten älterer Compiler nach und beschränkt Sie auf Funktionen, die nur für diese bestimmte Sprachversion verfügbar sind.
Ich glaube nicht, dass eine lösungsweite Einstellung verfügbar ist.
quelle
PropertyGroup
Element ein:<LangVersion>5</LangVersion>
<LangVersion>6</LangVersion>
stattdessen einfach .Hinzufügen unten in
.sln.DotSettings
sollte es auf Lösungsebene deaktivierenOder wenn Sie keine
.sln.DotSettings
Datei haben:Wenn Ihre Lösungsdatei Apple.sln heißt, erstellen Sie daneben eine Datei mit dem Namen Apple.sln.DotSettings.
Geben Sie ihm den folgenden Inhalt:
Schließen Sie die Lösung und öffnen Sie sie erneut. Resharper sollte Sie nur vor C # 5-Dingen warnen.
Vergessen Sie nicht, dies zu entfernen, wenn Sie irgendwann C # 6-Funktionen verwenden! :) :)
quelle
Dieses Tool, das ich geschrieben habe, kann Ihnen helfen, wenn Sie viele Projekte haben, für die Sie festlegen müssen
LangVersion
.quelle
Sie können die Sprachfunktion für alle
solutions/csproj
mit einstellenMSBuildUserExtensionsPath
.Suchen Sie den Wert von
$(MSBuildUserExtensionsPath)
, es sollte so etwas wie seinC:\Users\$(User)\AppData\Local\Microsoft\MSBuild
Bearbeiten Sie dann die Datei
Force.LangVersion.ImportBefore.props
im Ordner$(MSBuildUserExtensionsPath)\14.0\Imports\Microsoft.Common.Props\ImportBefore
mit:quelle
Die obigen Schritte wurden bereits geschrieben, indem nur ein weiterer Screenshot meines VS2015 hinzugefügt wurde:
Eigenschaften des Projekts >> Erstellen >> Erweitert >> Sprachversion
Ich habe das auf C # 5.0 gesetzt.
quelle
Klicken Sie im Projektexplorer mit der rechten Maustaste auf Projekt und wählen Sie Eigenschaften.
Wenn die Registerkarte Eigenschaften geöffnet wird, wählen Sie Erstellen und klicken Sie unten rechts auf die Schaltfläche Erweitert.
Es gibt ein Dropdown-Feld namens Sprachversion. Ändern Sie die Auswahl auf "C # 5.0".
quelle