Bei Verwendung Visual Studio Enterprise 16.3.7
auf zwei separaten Computern funktioniert einer einwandfrei und der andere Computer gibt den Fehler aus:
Die Funktion 'Verwenden von Deklarationen' ist in C # 7.3 nicht verfügbar. Bitte verwenden Sie die Sprachversion 8.0 oder höher.
Dies kann leicht auf der keine Bearbeitungsmaschine gelöst werden , indem LangVersion
in .csproj
wie hier vorgeschlagen https://stackoverflow.com/a/48085575/3850405 oder lassen Sie Visual Studio automatisch reparieren wie das Druckbild oben.
<LangVersion>8.0</LangVersion>
Was ich nicht verstehen kann ist, warum eine Maschine ohne diese Zeile gut baut .csproj
und die andere Maschine sie benötigt?
dotnet --list-sdks
zeigt?.NET Framework 4.6.1
undLangVersion
ist nicht festgelegt.Antworten:
Ich habe den gleichen Fehler erhalten, aber ich hatte einfach vergessen, das einzuschließen
Attribut in ALL den CSPROJ Dateien in der Lösung. Das Folgende ist mein aktuelles c # 8-Setup:
Ich fand die folgenden Dokumente am hilfreichsten bei der Migration von Core 2.2 auf 3.x:
MSDN 2.2 -> 3.0
MSDN 3.0 -> 3.1
quelle
<LangVersion>latest</LangVersion>
anstelle von<LangVersion>8.0</LangVersion>
MSDN 2.2 -> 3.0
soll auf Folgendes verweisen : docs.microsoft.com/en-us/aspnet/core/migration/22-to-30 Ich habe versucht, die Antwort zu bearbeiten, um sie zu ändern, aber "schlug eine Bearbeitungswarteschlange vor ist voll ", werde also stattdessen hier posten.Ich musste Visual Studio auf die Version 16.3.X auf 16.4.2 aktualisieren. Dies löste das Problem und ich musste keine LangVersion hinzufügen.
Credits: https://github.com/aspnet/AspNetCore.Docs/issues/16047
quelle
Dies kann daran liegen, dass der Compiler standardmäßig verschiedene C # -Sprachenversionen für verschiedene Target Frameworks verwendet.
Um die Standardsprache C # zu überschreiben, fügen Sie sie zur Projektdatei hinzu (wie in Frage vorgeschlagen):
oder:
Unter C # -Sprachenversionierung finden Sie die Standardversionen für C # -Sprachen für die verschiedenen Zielframeworks und die manuelle Auswahl der C # -Sprachenversion.
Siehe auch die Antwort zum Stapelüberlauf. Unterstützt C # 8 .NET Framework? Weitere Informationen zu diesem Thema.
Hier ist ein Teil des Artikels zur Versionierung der C # -Sprache :
Versionierung der C # -Sprache
Der neueste C # -Compiler ermittelt eine Standard-Sprachversion basierend auf dem Zielframework oder den Frameworks Ihres Projekts. Dies liegt daran, dass die C # -Sprache möglicherweise Funktionen enthält, die auf Typen oder Laufzeitkomponenten beruhen, die nicht in jeder .NET-Implementierung verfügbar sind. Dies stellt auch sicher, dass Sie für jedes Ziel, für das Ihr Projekt erstellt wurde, standardmäßig die höchstkompatible Sprachversion erhalten.
Die Regeln in diesem Artikel gelten für den Compiler, der mit Visual Studio 2019 oder dem .NET Core 3.0 SDK geliefert wird. Die C # -Compiler, die Teil der Visual Studio 2017-Installation oder früherer .NET Core SDK-Versionen sind, zielen standardmäßig auf C # 7.0 ab.
Standardeinstellungen
Der Compiler bestimmt einen Standard basierend auf diesen Regeln:
Standard überschreiben
Wenn Sie Ihre C # -Version explizit angeben müssen, können Sie dies auf verschiedene Arten tun:
Bearbeiten Sie die Projektdatei
Sie können die Sprachversion in Ihrer Projektdatei festlegen. Wenn Sie beispielsweise explizit auf Vorschaufunktionen zugreifen möchten, fügen Sie ein Element wie das folgende hinzu:
Der Wert
preview
verwendet die neueste verfügbare Vorschau-C # -Sprachenversion, die Ihr Compiler unterstützt.Konfigurieren Sie mehrere Projekte
Um mehrere Projekte zu konfigurieren, können Sie eine Directory.Build.props- Datei erstellen , die das
<LangVersion>
Element enthält . Dies tun Sie normalerweise in Ihrem Lösungsverzeichnis. Fügen Sie einer Directory.Build.props- Datei in Ihrem Lösungsverzeichnis Folgendes hinzu :Jetzt wird in jedem Unterverzeichnis des Verzeichnisses, das diese Datei enthält, die Vorschau-C # -Version verwendet. Weitere Informationen finden Sie im Artikel zum Anpassen Ihres Builds .
quelle
Ich habe die neueste Version von .Net Core 3.0 und 3.1 heruntergeladen und hatte das gleiche Problem. Für mich schien das Update das neueste Update für Visual Studio 2019 (auf Version 16.4.2) herunterzuladen.
Dadurch wurde auch mein Computer neu gestartet und der Fehler wurde behoben.
quelle