Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

211
Views
Habilitación de c# 7 en una aplicación asp.net

Acabo de empezar a trabajar en mi solución anterior en Visual Studio 2017. Simplemente abrir la solución en el IDE anterior funcionó a la perfección. Los proyectos de la aplicación c# ahora tienen como valor predeterminado el compilador c# 7.0. Las páginas de propiedades de esos proyectos (compilación/avanzado) permiten elegir fácilmente la versión de idioma de destino del compilador, por defecto a la última.

Sin embargo, no puedo encontrar una manera de habilitar c # 7.0 en los proyectos web asp.net . Si escribo una declaración como:

 if (int.TryParse("1", out int myInt)) { ... }

el IDE me advierte diciendo que necesito usar la versión 7+ del lenguaje.

Mi investigación sobre este tema muestra que debo apuntar a la versión específica de C# en el área de compiladores system.codedom del archivo web.config, para apuntar a la versión más reciente de Roslyn.

Lo que tengo ahora es:

 <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>

que apunta a c# 6. ¿Cuáles son las configuraciones correctas para c# 7, siempre que ya haya descargado la última versión de Roslyn con nuget?

Actualizar Aquí hay una captura de pantalla de las opciones de compilación disponibles para un proyecto web (es italiano VS2017 pero debería ser fácil de entender). No hay posibilidad de seleccionar la versión de C# objetivo allí.

Opciones de compilación

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

En la ventana NuGet del sitio web:

  1. Desinstalar Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  2. reinstalarlo
  3. En web.config , en: system.codedom > compilers > compiler , cambie compilerOptions ="/langversion: 6 to 7
over 4 years ago · Santiago Trujillo Report

0

Puedo compilarlo con la configuración de idioma predeterminada pero no con la opción C# 7. ingrese la descripción de la imagen aquí

Pero la configuración a continuación da un error de tiempo de compilación:

ingrese la descripción de la imagen aquí

para que pueda mantener la configuración de su versión de idioma como predeterminada.

Si experimenta con Roslyn y no usa la compilación predeterminada del compilador de Visual 2017, es posible que deba realizar algunos cambios más.

Seleccione el nombre de su proyecto y haga clic derecho >> Ventana de propiedades >> Construir y luego agregue las siguientes dos opciones en el cuadro de texto "Símbolos de compilación condicional" __DEMO__,__DEMO_EXPERIMENTAL__

ingrese la descripción de la imagen aquí

Actualizar

Para usar C# 7.0, necesita usar la versión 2.0+ de Microsoft.Net.Compilers

ingrese la descripción de la imagen aquí

después de instalar la última versión de Microsoft.Net.Compilers (2.0+) , puede seleccionar la versión de idioma como C# 7.

por lo que la mejor solución es instalar la última versión de Microsoft.Net.Compilers (2.0+).

over 4 years ago · Santiago Trujillo Report

0

Para la compatibilidad con C# 7.x, establezca la versión del lenguaje de configuración de compilación del proyecto en la última versión secundaria de C# (más reciente)

Versión del lenguaje de configuración de compilación

Si utiliza proveedores de CodeDOM para la plataforma del compilador .NET ("Roslyn") (por ejemplo, el paquete nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform), configure compilerOptions="/langversion:latest" en web.config para asp.net.

 <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:latest /nowarn:1659;1699;1701"/> </compilers> </system.codedom>

Para más información:

  • https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/langversion-compiler-option
  • https://github.com/aspnet/RoslynCodeDomProvider#what-is-changed
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!