webentwicklung-frage-antwort-db.com.de

CS1617: Ungültige Option '6' für / langversion; muss ISO-1, ISO-2, 3, 4, 5 oder Standard sein

Beim Ausführen einer neuen ASP.NET MVC-Anwendung (direkt aus der VS 2015-Community) auf einem Windows 2008 Server-Computer wurde dieser Fehler nicht behoben.

76
Kyle Carlson

Viele Leute stoßen darauf, also wollte ich hier posten.

Fand eine verrückte einfache Problemumgehung dank diesem Kerl: Expertdebugger .

Aktualisieren Sie einfach Ihre Sprachversion von C # 6 auf C # 5 wie folgt:

<system.codedom>
    <compilers>
      <compiler language=”c#;cs;csharp” extension=”.cs” type=”Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:6 /nowarn:1659;1699;1701″>
        <providerOption name=”CompilerVersion” value=”v4.0″/>
      </compiler>
      <compiler language=”vb;vbs;visualbasic;vbscript” extension=”.vb” type=”Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+”>
          <providerOption name=”CompilerVersion” value=”v4.0″/>
      </compiler>
    </compilers>
  </system.codedom>

Ändere das langversion:6 nach unten von 6 bis 5 - langversion:5

Reparierte es für mich. Danke ihm.

94
Kyle Carlson

Wenn Sie C # 6.0 verwenden möchten:

  1. Stellen Sie sicher, dass die .NET-Version Ihres Projekts höher als 4.5.2 ist.
  2. Und dann überprüfe dein .config Datei, um die folgenden Änderungen durchzuführen.

Suche nach system.codedom und ändern Sie es so, dass es wie folgt aussieht:

<system.codedom>
 <compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
 </compilers>
</system.codedom>
73
chsword

In meinem Fall habe ich die falsche MSBuild.exe verwendet, die gefunden in:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

Um den Fehler zu beheben, habe ich meine PATH-Umgebungsvariable aktualisiert, um Visual Studio 2017 MSBuild.exe zu verwenden:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSbuild.exe

Weitere Informationen finden Sie unter diesem Link: Fehler CS1056: Unerwartetes Zeichen '$', mit dem msbuild in einem fortlaufenden tfs-Integrationsprozess ausgeführt wird

8
user8128167

Ich fand, dass die direkte Ursache für den Fehler in meinem Fall war:

build -> advanced -> language version

dies ist sinnvoll, da der Fehler besagt, dass es eine ungültige Option für die Sprache gibt.

aber das hat vorher gut funktioniert - also muss es ausgewählt worden sein. was hat sich geändert? Es stellte sich heraus, dass ein Mitglied meines Teams ein Upgrade auf 2017 durchgeführt hatte, während ich 2015 noch verwendete. Nachdem er Änderungen am Projekt vorgenommen hatte, wurde die Sprachversion geändert und ich erhielt diese Änderung über die Quellcodeverwaltung. Die ausgewählte Version war jedoch für meine Version von vs nicht verfügbar, sodass sie leer war - daher der Fehler. Nach der Auswahl eines Wertes in der Dropdown-Liste Sprache (ich habe die Standardeinstellung gewählt) ist ein neuer Fehler aufgetreten. Der neue Fehler verursachte einen Buildfehler in Codezeilen, in denen die neuere Version von c # verwendet wurde. Ich habe den Code geändert, um die gleichen Funktionen auszuführen, aber mit meiner c # -Versionssyntax und dem gelösten Problem.

während die direkte Fehlerursache in der Tat eine ungültige Auswahl der Sprachversion war, war die Hauptursache auf widersprüchliche vs/c # -Versionen zurückzuführen.

7
Heriberto Lugo

In meinem Fall war der Fehler:

Fehler CS1617 Ungültige Option 'latest' für/langversion; muss ISO-1, ISO-2, Default oder eine ganze Zahl im Bereich von 1 bis 6 sein.

Ich habe meine .csproj-Datei mit dem Editor geöffnet und folgende Zeile gesehen:

<PropertyGroup>
    <LangVersion>latest</LangVersion>
</PropertyGroup>

Ich habe die letzte für eine ganze Zahl im Bereich von 1 bis 6 geändert

<LangVersion>6</LangVersion>

Der Fehler ist verschwunden!

6
nahuelmisc

Anstatt die Sprachversion von 6 auf 5 zu ändern, ändern Sie das Attribut "type" im Compiler-Tag von

Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

zu

Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

Aktualisieren Sie das Microsoft.Net.Compilers Nuget-Paket auf die neueste Version (mindestens 2.x).

2
wnbates

Ich habe gerade das langversion in default geändert und es hat bei mir funktioniert. VS 2015

<system.codedom>
<compilers>
  <compiler language=”c#;cs;csharp” extension=”.cs” type=”Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:default /nowarn:1659;1699;1701″>
    <providerOption name=”CompilerVersion” value=”v4.0″/>
  </compiler>
  <compiler language=”vb;vbs;visualbasic;vbscript” extension=”.vb” type=”Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+”>
      <providerOption name=”CompilerVersion” value=”v4.0″/>
  </compiler>
</compilers>
0
Kumar

Die einfachste Lösung für mich war das Upgrade der .Net-Compiler über den Package Manager

Installationspaket Microsoft.Net.Compilers

und ändern Sie dann die Web.Config-Zeilen zu diesem

        <system.codedom>
 <compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
 </compilers>
</system.codedom>
0
Mike

Ich habe die Microsoft.Net.Compiler auf Version 2.0 oder höher aktualisiert

siehe dies

0
davcup

in diesem Fall versuchen Sie, vs 2019 zu verwenden, ich hoffe, Hilfe zu haben

0