c# - the - cs1617: opción ''6'' no válida para/langversion; debe ser iso-1, iso-2, 3, 4, 5 o default.
CS1617: Opción no válida ''6'' para/langversion; debe ser ISO-1, ISO-2, 3, 4, 5 o Predeterminado (11)
Seguí recibiendo ese error al ejecutar una nueva aplicación ASP.NET MVC (directamente de la comunidad VS 2015) en una máquina con Windows 2008 Server.
Acabo de cambiar la
langversion
a la
default
y funcionó para mí.
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=/"Web/" /optionInfer+”>
<providerOption name=”CompilerVersion” value=”v4.0″/>
</compiler>
</compilers>
Actualice el paquete Microsoft.Net.Compilers Nuget a la última versión (al menos 2.x)
Descubrí que la causa directa del error en mi caso fue:
Esto tiene sentido ya que el error indica que hay una opción no válida para el idioma.
pero, esto funcionaba bien antes, por lo que debe haber sido seleccionado. ¿Qué cambió? Resulta que un miembro de mi equipo se actualizó a 2017, mientras todavía estaba usando 2015. Después de que él hizo cambios en el proyecto, la versión del idioma cambió y recibí ese cambio sobre el control de la fuente. pero la versión seleccionada no estaba disponible para mi versión de vs, por lo que estaba en blanco, de ahí el error. después de seleccionar un valor en el menú desplegable de idiomas (elegí el predeterminado), apareció un nuevo error. el nuevo error estaba causando una falla de compilación en cualquier línea de código que usara la versión más nueva de c #. Cambié el código para realizar las mismas funciones, pero con mi sintaxis de versión C # y el problema resuelto.
entonces, si bien la causa directa del error fue una selección no válida de la Versión del idioma, la causa raíz se debió a que las diferentes versiones vs / c # estaban en conflicto.
En lugar de cambiar la versión del idioma de 6 a 5, cambie el atributo "tipo" en la etiqueta del compilador de
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
En mi caso el error fue:
Error CS1617 Opción no válida ''último'' para / langversion; debe ser ISO-1, ISO-2, Predeterminado o un número entero en el rango de 1 a 6.
Abrí mi archivo .csproj con el bloc de notas y vi esta línea:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Cambié lo último por un número entero en el rango de 1 a 6
<LangVersion>6</LangVersion>
¡El error desapareció!
En mi caso, estaba usando el MSBuild.exe incorrecto, el que se encuentra en:
C:/Windows/Microsoft.NET/Framework64/v4.0.30319
Para resolver el error, actualicé mi variable de entorno PATH para comenzar a usar el Visual Studio 2017 MSBuild.exe:
C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/MSBuild/15.0/Bin/MSbuild.exe
Consulte este enlace para obtener más detalles: Error CS1056: Carácter inesperado ''$'' que ejecuta msbuild en un proceso de integración continua tfs
He actualizado Microsoft.Net.Compilers a la versión 2.0 o superior
La solución más fácil para mí fue actualizar los compiladores .Net a través de Package Manager
Install-Package Microsoft.Net.Compilers
y luego cambiando las líneas Web.Config a esto
<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>
Mucha gente se encuentra con él, así que quería publicar aquí.
Encontré una solución fácil y loca gracias a este tipo: Expertdebugger .
Simplemente baje la versión de su idioma de C # 6 a C # 5, así:
<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>
Cambie la
langversion:6
hacia abajo de 6 a 5 -
langversion:5
Me lo arregló. Gracias a el.
Si desea utilizar C # 6.0:
- Asegúrese de que la versión .NET de su proyecto sea superior a la 4.5.2.
-
Y luego verifique su archivo
.config
para realizar las siguientes modificaciones.
Busque
system.codedom
y
system.codedom
para que se vea como se muestra a continuación:
<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>
en este caso, intente usar vs 2019, espero tener ayuda