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
risposta
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=\"Web\" /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.
Grazie mille che mi ha aiutato. –
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! –
Oppure rimuovi il blocco
Se vuoi utilizzare C# 6.0:
- Assicurarsi che la versione di .NET del progetto è superiore a 4.5.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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
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
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
Accetto con SM3RKY - questa risposta è più rilevante in quanto risolve il problema, piuttosto che bypassare esso! –
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=\"Web\" /optionInfer+"/>
</compilers>
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
Aggiornare il Microsoft.Net. Compilatori Nuget pacchetto alla versione più recente (almeno 2.x)
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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
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
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) –