Как отключить поддержку С# 6 в Visual Studio 2015?
Фон
У нас есть проект, который мы разрабатываем в VS 2015 с включенным С# 6, который иногда должен быть открыт разработчиками, использующими VS 2013 без С# 6.
Мы не намерены использовать С# 6 в этом конкретном решении (насколько мне бы хотелось).
Проблема
Visual Studio и ReSharper предлагают полезные конструкторы языка С# 6, которые делают решение неработоспособным в более ранних версиях Visual Studio без поддержки С# 6.
Я отключил поддержку ReSharper С# 6, но я не могу отключить/ограничить возможности С# во всем решении.
Вопрос
Как ограничить возможности С# до С# 5 в рамках решения или в Visual Studio 2015?
Ответы
Ответ 1
Вы можете установить функцию языка для каждого проекта отдельно, перейдя в Properties => Build tab => Advanced button => Language Version
и установите предпочтительную версию.
Вы должны понимать, что он все равно будет использовать новую платформу компилятора С# 6.0. (под кодовым названием Roslyn). Тем не менее, этот компилятор будет имитировать поведение старых компиляторов и ограничит вас функциями, доступными только на этой конкретной языковой версии.
Я не думаю, что есть доступная настройка решения.
Ответ 2
добавить ниже в .sln.DotSettings
следует отключить его на уровне решения
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String>
Или, если у вас нет файла .sln.DotSettings
:
-
Если ваш файл решения называется Apple.sln, создайте файл рядом с ним под названием Apple.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>
-
Закройте и снова откройте решение, Resharper должен только предупредить вас о вещах С# 5.
-
Не забудьте удалить это, когда вы в конечном итоге начнете использовать функции С# 6!:)
Ответ 3
Щелкните правой кнопкой мыши Project в Project Explorer и выберите "Свойства".
Когда откроется вкладка "Свойства", выберите "Сборка" и нажмите кнопку "Advance" внизу справа.
Появится раскрывающийся список Language Version. Измените выбор на "С# 5.0"
Ответ 4
Вы можете установить язык для всех solutions/csproj
с помощью MSBuildUserExtensionsPath
.
Найдите значение $(MSBuildUserExtensionsPath)
, оно должно быть чем-то вроде C:\Users\$(User)\AppData\Local\Microsoft\MSBuild
Затем отредактируйте файл Force.LangVersion.ImportBefore.props
в папке $(MSBuildUserExtensionsPath)\14.0\Imports\Microsoft.Common.Props\ImportBefore
с помощью:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LangVersion>5</LangVersion>
</PropertyGroup>
</Project>
Ответ 5
Этот инструмент который я написал, может помочь вам, если у вас есть много проектов, которые вам нужно установить LangVersion
для.
Ответ 6
Шаги уже написаны выше, просто добавив снимок экрана моего VS2015:
Свойства проекта → Сборка → Дополнительно → Языковая версия
![введите описание изображения здесь]()
Я установил это на С# 5.0.