Deshabilite la compatibilidad con C # 6.0 en ReSharper

140

Mientras usaba ReSharper, sugirió "Habilitar la compatibilidad con C # 6.0 para este proyecto". Hice clic tontamente en él y ahora, como lo anuncian, me da sugerencias para C # 6.0, que luego me dan errores, ya que no estoy usando C # 6.0 en este proyecto.

¿Cómo puedo deshabilitar el soporte de C # 6.0, volviendo a ser como era antes? (Preferiblemente sin tener que ignorar individualmente sugerencias específicas)

Mathieu Lomax
fuente
1
Esto me acaba de pasar pero no recuerdo haber visto esa sugerencia. Estaba creando una nueva clase en mi proyecto, implementando una interfaz y sugería cosas de c # 6. Estaba tan confundido ...
Charles Josephs

Respuestas:

165

Haga clic en el nodo del proyecto en el Explorador de soluciones. Luego busque en la cuadrícula de propiedades (F4). Verá una propiedad llamada "Nivel de lenguaje C #". Ajústelo a "Predeterminado" o al nivel de idioma deseado.

ingrese la descripción de la imagen aquí

John Saunders
fuente
Esto no está disponible en VS2015 Preview, ¿alguna alternativa?
Musulmán Ben Dhaou
13
Está disponible en Proyecto => Propiedades => Compilación => Avanzado.
Ilya Suzdalnitski
1
Está disponible en 2015 RC, en proyectos, no en la solución.
Fontanka16
44
@MDeSchaepmeester solo selecciona múltiples todos los proyectos para establecer el Nivel de idioma una vez para toda la solución. Cada proyecto tendrá su propio archivo .DotSettings
Jochen
1
Para su información: al seleccionar "Predeterminado" en VS2015 RTM, aún se dejará habilitado C # 6.0 (aparentemente es el predeterminado en VS2015); debe seleccionar explícitamente C # 5.0 si eso es lo que desea.
Sr. T
59

PARA deshabilitarlo de una vez en la solución en lugar de por nivel de proyecto, agregue a continuación en .sln.DotSettings

<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String>

deshabilitaría las funciones de resharper 6.0 / le daría un error

EDITAR

según los comentarios, en caso de que no tenga el sln.DotSettingsarchivo, debe crear uno con los siguientes contenidos

<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> 
    <s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">‌​CSharp50</s:String>
</wpf:ResourceDictionary>
harishr
fuente
12
Esto debe marcarse como la respuesta, resuelve el problema a nivel de solución, es decir, sin la necesidad de establecer por propiedad
csproj
2
Aquí está todo el contenido del archivo sln .DotSettings, en caso de que necesite recrearlo como lo hice yo. <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String></wpf:ResourceDictionary>
Jeson Martajaya
1
@JesonMartajaya respuesta actualizada para incluir sus comentarios
harishr
1
Esto funciona para mi. Sin embargo: ese primer fragmento XML tiene una etiqueta </ ​​wpf: ResourceDictionary> sin igual al final.
Nick Smith
3
Actualizado: me estaba arrancando el pelo tratando de entender por qué esto no estaba funcionando. Resulta que había cambiado la configuración de idioma en las propiedades del proyecto, lo que crea un archivo .csproj.DotSettings. Cuando cambié la configuración a "Predeterminado" de "CSharp50", el "Predeterminado" en la configuración específica del proyecto anulaba la configuración "CSharp50" de toda la solución. Al eliminar el archivo .csproj.DotSettings y volver a abrir la solución, se solucionó.
Nick Smith