tło
Mamy projekt, który rozwijamy w VS 2015 z włączonym C # 6, który czasami musi być otwierany przez programistów używających VS 2013 bez C # 6.
Nie mamy zamiaru używać C # 6 w tym konkretnym rozwiązaniu (tak bardzo, jak bym chciał).
Problem
Visual Studio i ReSharper sugerują pomocne konstrukcje języka C # 6, które powodują, że rozwiązanie nie działa we wcześniejszych wersjach programu Visual Studio bez obsługi języka C # 6.
Mam wyłączył ReSharper C # 6 wsparcia , ale nie może wydawać się aby wyłączyć limitu / C # wyposażony w całym roztworze.
Pytanie
Jak ograniczyć możliwości języka C # do języka C # 5 w ramach rozwiązania lub w programie Visual Studio 2015?
c#
visual-studio
c#-5.0
visual-studio-2015
c#-6.0
SeanKilleen
źródło
źródło
Odpowiedzi:
Możesz ustawić język dla każdego projektu osobno, przechodząc do
Properties => Build tab => Advanced button => Language Version
i ustawiając preferowaną wersję.Należy zdać sobie sprawę, że nadal będzie używać nowej platformy kompilatora .Net „C # 6.0” (o nazwie kodowej Roslyn). Jednak ten kompilator będzie imitował zachowanie starszych kompilatorów i ograniczy Cię do funkcji dostępnych tylko w tej konkretnej wersji językowej.
Nie sądzę, aby dostępne było ustawienie obejmujące całe rozwiązanie.
źródło
PropertyGroup
elementu dodaj następujące elementy:<LangVersion>5</LangVersion>
<LangVersion>6</LangVersion>
zamiast tego.dodaj poniżej w
.sln.DotSettings
powinno wyłączyć to na poziomie rozwiązaniaLub jeśli nie masz
.sln.DotSettings
pliku:Jeśli plik rozwiązania nosi nazwę Apple.sln, utwórz obok niego plik o nazwie Apple.sln.DotSettings.
Nadaj mu następującą zawartość:
Zamknij i ponownie otwórz rozwiązanie, Resharper powinien tylko ostrzec Cię o rzeczach C # 5.
Nie zapomnij usunąć tego, gdy w końcu zaczniesz używać funkcji C # 6! :)
źródło
To narzędzie, które napisałem, może ci pomóc, jeśli masz wiele projektów, na które musisz przygotować
LangVersion
.źródło
Możesz ustawić funkcję języka dla wszystkich za
solutions/csproj
pomocąMSBuildUserExtensionsPath
.Wyszukaj wartość
$(MSBuildUserExtensionsPath)
, powinno być coś w styluC:\Users\$(User)\AppData\Local\Microsoft\MSBuild
Następnie edytuj plik
Force.LangVersion.ImportBefore.props
w folderze za$(MSBuildUserExtensionsPath)\14.0\Imports\Microsoft.Common.Props\ImportBefore
pomocą:źródło
Kroki zostały już napisane powyżej, po prostu dodając zrzut ekranu dalej mojego VS2015:
Właściwości projektu >> Build >> Advanced >> Wersja językowa
Ustawiłem to na C # 5.0.
źródło
Kliknij prawym przyciskiem myszy Projekt w Eksploratorze projektów i wybierz Właściwości.
Po otwarciu karty Właściwości wybierz opcję Kompiluj i kliknij przycisk Zaawansowane w prawym dolnym rogu.
Znajduje się tam rozwijana lista o nazwie Wersja językowa. Zmień zaznaczenie na „C # 5.0”
źródło