Подтвердить что ты не робот

Как включить функцию С# 6.0 в Visual Studio 2013?

Я просматривал последние функции, введенные в С# 6.0, и просто последовал примеру инициализатора свойств auto,

class NewSample
{
    public Guid Id { get; } = Guid.NewGuid();
}

но моя IDE не распознала синтаксис.

Мне интересно, как я могу включить С# 6.0 в Visual Studio 2013. Я использую Target Framework 4.5.1.

4b9b3361

Ответ 1

Информация для устаревшего программного обеспечения:

В соответствии с этим это просто установка и переход на Visual Studio 2013:

Фактически, установка компилятора С# 6.0 из этой версии включает в себя не что иное, как установку расширения Visual Studio 2013, которое, в свою очередь, обновляет целевые файлы MSBuild.

Так что просто получите файлы из https://github.com/dotnet/roslyn, и вы готовы к работе.

Вам нужно знать, что это устаревшая версия спецификаций, реализованная там, поскольку они больше не обновляют пакет для Visual Studio 2013:

Вы также можете попробовать апрельский конечный пользовательский просмотр, который устанавливается поверх Visual Studio 2013. (примечание: этот предварительный просмотр VS 2013 совершенно устарел и больше не обновляется)

Итак, если вы хотите использовать последнюю версию, вам нужно загрузить Visual Studio 2015.

Ответ 2

В VS2013 вы можете установить новые компиляторы в проект как пакет nuget. Таким образом вам не нужен VS2015 или обновленный сервер сборки.

https://www.nuget.org/packages/Microsoft.Net.Compilers/

Install-Package Microsoft.Net.Compilers

Пакет позволяет использовать /build С# 6.0 код/​​синтаксис. Поскольку VS2013 не распознает новый синтаксис С# 6.0, он отображает ошибки в окне редактора кода, хотя он будет прекрасно работать.

Используя Resharper, вы получите squiggly строки на функциях С# 6, но лампочка дает вам возможность "Включить поддержку С# 6.0 для этого проекта" (настройка сохранена в .DotSettings).

Как уже упоминалось @stimpy77: для поддержки в MVC Razor views вам понадобится дополнительная package (для тех, кто не 'читать комментарии)

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Если вам нужна полная поддержка С# 6.0, вам необходимо установить VS2015.

Ответ 3

Стоит отметить, что время сборки будет увеличено для пользователей VS 2015 после:

Install-Package Microsoft.Net.Compilers

Те, кто использует VS 2015 и должны поддерживать этот пакет в своих проектах , могут исправлять увеличение времени сборки.

Измените файл packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props и очистите его. Файл должен выглядеть так:

<Project DefaultTargets="Build" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

Это приводит к тому, что проект будет создан так, как это было до добавления пакета Microsoft.Net.Compilers

Ответ 4

В Visual Studio 2013 можно использовать полные возможности С# 6.0, если у вас есть Resharper.
Вы должны включить Resharper Build и voilá! В параметрах Resharper → Build - включить Resharper Build и в "Использовать версию MSBuild.exe" выбрать "Последний установленный"

Таким образом, Resharper собирается создавать ваши проекты С# 6.0, а также не будет подчеркивать код С# 6.0 как недопустимый.

Я также использую это, хотя у меня есть Visual Studio 2015, потому что:

  • Тестирование модулей в Resharper по какой-то причине не работает для меня с Visual Studio 2015.
  • VS 2015 использует намного больше памяти, чем VS 2013.

Я помещаю это здесь, так как я искал решение этой проблемы в течение некоторого времени и, возможно, это поможет кому-то еще.