2015-09-03 10 views
61

Continuato a ricevere quell'errore durante l'esecuzione di una nuova applicazione ASP.NET MVC (direttamente dalla community di VS 2015) su un computer Windows 2008 Server.CS1617: opzione non valida '6' per/langversion; deve essere ISO-1, ISO-2, 3, 4, 5 o Default

+1

versione in lingua Downgrade a 5. Prendere un'occhiata a: [Come cambiare versione Language] (http: // StackOverflow.it/questions/31912651/how-to-change-language-version-in-visual-studio-2015/31912676 # 31912676) –

risposta

89

Un sacco di persone sono in esecuzione in esso, così ho voluto postare qui

trovato un pazzo per un'agevole manutenzione grazie a questo ragazzo: Expertdebugger.

<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> 

Modificare il langversion:6 verso il basso 6-5 - langversion:5

fisso per me. Ringrazialo.

+1

Grazie mille che mi ha aiutato. –

+9

Questo è solo dire al compilatore di compilare con C# versione 5 anziché 6, che non è quello che vuoi se stai facendo un progetto .NET 4.6 ... Quello che devi veramente cambiare è il tipo di compilatore, come se fosse sull'altra risposta a questa domanda! –

+0

Oppure rimuovi il blocco , risolverà anche il problema. –

68

Se vuoi utilizzare C# 6.0:

  1. Assicurarsi che la versione di .NET del progetto è superiore a 4.5.2.
  2. E quindi controllare il file .config per eseguire le seguenti modifiche.

Cercare il system.codedom e modificarlo in modo che sembrerà come illustrato di seguito:

<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

Questo è esattamente quello che stavo cercando. Ho iniziato a ricevere questo errore dopo aver aggiornato un progetto ASP.NET MVC da .NET Framework 4.5.2 a 4.6. Non sono sicuro, ma penso che sarebbe meglio se Visual Studio aggiornasse quelle linee da solo. – Zignd

+0

Questa dovrebbe essere la risposta corretta in quanto effettivamente risolve il problema e consente al compilatore di utilizzare la versione più recente invece di ricorrere alla vecchia versione – SM3RKY

+0

Accetto con SM3RKY - questa risposta è più rilevante in quanto risolve il problema, piuttosto che bypassare esso! –

0

Se si utilizza la versione 4.5.1 quadro la correzione è solo per sostituire langversion: 6 a langversion: 5. Aggiungilo all'interno di in webconfig.

<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:5 /nowarn:1659;1699;1701"> 
    <providerOption name="CompilerVersion" value="v4.0"/> 
    </compiler> 
    <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> 
2

Invece di cambiare la versione in lingua 6-5, modificare l'attributo "tipo" nel tag compilatore da

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

a

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

Aggiornare il Microsoft.Net. Compilatori Nuget pacchetto alla versione più recente (almeno 2.x)

0

La soluzione più semplice per me era l'aggiornamento g I compilatori Net tramite Package Manager

Microsoft.Net.Compilers Install-Package

e quindi modificando le linee web.config per questo

 <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

Nel mio caso ho usato il torto MSBuild exe, quello trovato in:

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

per risolvere l'errore, ho aggiornato il mio variabile d'ambiente PATH per iniziare a utilizzare Visual Studio 2017 MSBuild.exe:

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

Si prega di consultare questo link per ulteriori informazioni: Error CS1056: Unexpected character '$' running the msbuild on a tfs continuous integration process

Problemi correlati