Отключить поддержку C # 6.0 в ReSharper

140

При использовании ReSharper он предлагал «Включить поддержку C # 6.0 для этого проекта». Я по глупости щелкнул по нему, и теперь, как и было объявлено, он дает мне предложения по C # 6.0, которые затем дают мне ошибки, поскольку я не использую C # 6.0 в этом проекте.

Как отключить поддержку C # 6.0, вернув ее к прежней? (Желательно без индивидуального игнорирования конкретных предложений)

Матье Ломакс
источник
1
Это только что случилось со мной, но я не помню, чтобы видел это предложение. Я создавал новый класс в своем проекте, реализовывал интерфейс, и он предлагал материал для C # 6. Я был так сбит с толку ....
Чарльз Джозефс

Ответы:

165

Щелкните узел проекта в обозревателе решений. Затем посмотрите в сетку свойств (F4). Вы увидите свойство с именем «Уровень языка C #». Установите для него значение «По умолчанию» или желаемый уровень языка.

введите описание изображения здесь

Джон Сондерс
источник
Это недоступно в предварительной версии VS2015, есть ли альтернативы?
Мусульманин Бен Дхау
13
Он доступен в Project => Properties => Build => Advanced.
Илья Суздальницкий
1
Он доступен в 2015 RC для проектов, но не для решения.
Фонтанка16
4
@MDeSchaepmeester просто выберите несколько проектов, чтобы установить уровень языка один раз для всего решения. У каждого проекта будет свой файл .DotSettings
Йохен
1
К вашему сведению - выбор «По умолчанию» в VS2015 RTM по-прежнему оставит включенным C # 6.0 (по-видимому, это значение по умолчанию в VS2015) - вам нужно явно выбрать C # 5.0, если вы этого хотите.
Mr. T
59

Чтобы отключить его сразу во всем решении, а не на уровне проекта, добавьте ниже в .sln.DotSettings

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

это отключит функции resharper 6.0 / выдаст ошибку

РЕДАКТИРОВАТЬ

согласно комментариям, если у вас вообще нет sln.DotSettingsфайла, вам нужно создать его с приведенным ниже содержимым

<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
источник
12
Это должно быть отмечено как ответ, это решает проблему на уровне решения, то есть без необходимости устанавливать для каждого свойства csproj
aateeque 02
2
Вот все содержимое файла sln .DotSettings на случай, если вам нужно воссоздать его, как это сделал я. <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 обновил ответ, чтобы включить ваши комментарии
harishr
1
У меня это работает. Внимание! Первый фрагмент XML имеет в конце не имеющий себе равных тег </ wpf: ResourceDictionary>.
Ник Смит
3
Обновлено: я рвал волосы, пытаясь понять, почему это не работает. Оказывается, я изменил настройку языка в свойствах проекта, что создает файл .csproj.DotSettings. Когда я изменил настройку обратно на «По умолчанию» с «CSharp50», «По умолчанию» в настройках для конкретного проекта переопределило настройку «CSharp50» для всего решения. Удаление файла .csproj.DotSettings и повторное открытие решения исправили его.
Ник Смит,