Wyłącz obsługę języka C # 6.0 w programie ReSharper


140

Podczas korzystania z ReSharper zasugerował „Włącz obsługę języka C # 6.0 dla tego projektu”. Głupio go kliknąłem, a teraz, jak reklamowano, daje mi sugestie dotyczące C # 6.0 - które następnie dają mi błędy, ponieważ nie używam C # 6.0 w tym projekcie.

Jak mogę wyłączyć obsługę języka C # 6.0, przywracając ją do poprzedniego stanu? (Najlepiej bez konieczności indywidualnego ignorowania konkretnych sugestii)


1
To mi się po prostu przydarzyło, ale nie przypominam sobie, żebym widział taką sugestię. Tworzyłem nową klasę w swoim projekcie, implementowałem interfejs i sugerowałem coś w C # 6. Byłem taki zdezorientowany ...
Charles Josephs

Odpowiedzi:


165

Kliknij węzeł projektu w Eksploratorze rozwiązań. Następnie spójrz na siatkę właściwości (F4). Zobaczysz właściwość o nazwie „Poziom języka C #”. Ustaw go na „Domyślny” lub żądany poziom języka.

wprowadź opis obrazu tutaj


To nie jest dostępne w podglądzie VS2015, jakieś alternatywy?
Muzułmanin Ben Dhaou

13
Jest dostępny w Project => Properties => Build => Advanced.
Ilya Suzdalnitski

1
Jest dostępny w 2015 RC, w projektach, a nie w rozwiązaniu.
Fontanka 16

4
@MDeSchaepmeester po prostu wybierz wiele projektów, aby ustawić poziom języka raz dla całego rozwiązania. Każdy projekt otrzyma własny plik .DotSettings
Jochen

1
FYI - Wybranie „Default” w VS2015 RTM nadal pozostawi C # 6.0 włączone (to najwyraźniej domyślne ustawienie w VS2015) - musisz jawnie wybrać C # 5.0, jeśli tego chcesz.
Pan T

59

Aby wyłączyć go od razu na poziomie rozwiązania, a nie na poziomie projektu, dodaj poniżej w .sln.DotSettings

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

wyłączyłoby to funkcje resharper 6.0 / spowodowałoby błąd

EDYTOWAĆ

zgodnie z komentarzami, jeśli sln.DotSettingsw ogóle nie masz pliku, musisz utworzyć taki z poniższą zawartością

<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>

12
To powinno być oznaczone jako odpowiedź, rozwiązuje problem na poziomie rozwiązania, tj. Bez konieczności ustawiania właściwości per csproj
aateeque

2
Oto cała zawartość pliku sln .DotSettings, na wypadek, gdyby trzeba było go odtworzyć, tak jak ja. <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 zaktualizowana odpowiedź, aby uwzględnić Twoje komentarze
harishr

1
To działa dla mnie. Uwaga: ten pierwszy fragment kodu XML ma na końcu niedopasowany tag </ wpf: ResourceDictionary>.
Nick Smith

3
Zaktualizowano: wyrywałem włosy z głowy, próbując dowiedzieć się, dlaczego to nie działa. Okazuje się, że zmieniłem ustawienie języka we właściwościach projektu, co powoduje utworzenie pliku .csproj.DotSettings. Kiedy zmieniłem to ustawienie z powrotem na „Domyślne” z „CSharp50”, „Domyślne” w ustawieniach specyficznych dla projektu przesłaniało ustawienie „CSharp50” dla całego rozwiązania. Usunięcie pliku .csproj.DotSettings i ponowne otwarcie rozwiązania rozwiązało problem.
Nick Smith
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.