Я просматривал последние функции, представленные в C # 6.0, и просто следовал примеру инициализатора автоматического свойства,
class NewSample
{
public Guid Id { get; } = Guid.NewGuid();
}
но моя IDE не распознала синтаксис.
Мне интересно, как я мог включить C # 6.0 в Visual Studio 2013. Целевая среда, которую я использую, - это 4.5.1.
Ответы:
Информация для устаревшего пререлизного программного обеспечения:
В соответствии с этим это просто установка и переход на Visual Studio 2013:
Так что просто получите файлы с https://github.com/dotnet/roslyn, и вы готовы к работе.
Вы должны знать, что это устаревшая версия реализованных там спецификаций, поскольку они больше не обновляют пакет для Visual Studio 2013 :
Так что если вы хотите использовать последнюю версию, вам нужно скачать Visual Studio 2015 .
источник
Под VS2013 вы можете установить новые компиляторы в проект как пакет nuget . Таким образом, вам не нужен VS2015 или обновленный сервер сборки.
https://www.nuget.org/packages/Microsoft.Net.Compilers/
Пакет позволяет использовать / строить код / синтаксис C # 6.0. Поскольку VS2013 изначально не распознает новый синтаксис C # 6.0, он покажет ошибки в окне редактора кода, хотя и будет работать нормально .
Используя Resharper, вы получите волнистые линии на функциях C # 6, но лампа дает вам возможность «Включить поддержку C # 6.0 для этого проекта» (настройка сохранена в .DotSettings).
Как упомянуто @ stimpy77: для поддержки в представлениях MVC Razor вам понадобится дополнительный пакет (для тех, кто не читает комментарии)
Если вам нужна полная поддержка C # 6.0, вам нужно установить VS2015.
источник
Многие ответы здесь были написаны до того, как Roslyn (компиляторы .NET C # и VB с открытым исходным кодом) перешли на .NET 4.6. Таким образом, они не помогут вам, если ваш проект, скажем, 4.5.2, как мой (унаследовал и не может быть изменен).
Но вы можете взять предыдущую версию Roslyn с https://www.nuget.org/packages/Microsoft.Net.Compilers и установить ее вместо последней версии. Я использовал 1.3.2. (Я попробовал 2.0.1 - которая, похоже, является последней версией, работающей на .NET 4.5 - но я не смог заставить ее скомпилировать *.) Запустите это из консоли диспетчера пакетов в VS 2013:
Затем перезапустите Visual Studio. У меня была пара проблем изначально; вам нужно установить версию C # обратно в значение по умолчанию (C # 6.0 не отображается в списке версий, но, по-видимому, по умолчанию), затем очистить, сохранить, перезапустить VS и перекомпилировать.
Интересно, что у меня не было никаких ошибок IntelliSense из-за функций C # 6.0, использованных в коде (что и было причиной того, что C # 6.0 был в первую очередь необходим).
* ошибка версии 2.0.1 . Не удалось загрузить задачу «Microsoft.CodeAnalysis.BuildTasks.Csc из сборки Microsoft.Build.Tasks.CodeAnalysis.dll. Не удалось загрузить файл или сборку» Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a 'или одна из ее зависимостей. Система не может найти указанный файл. Убедитесь, что объявление правильное, что сборка и все ее зависимости доступны и что задача содержит открытый класс, который реализует Microsoft.Build.Framework.ITask.
ОБНОВЛЕНИЕ Одна вещь, которую я заметил после публикации этого ответа, заключается в том, что если вы измените какой-либо код во время отладки («Редактировать и продолжить»), вы обнаружите, что ваш код C # 6.0 внезапно будет отображаться как ошибки в том, что, кажется, возвращается среда до C # 6.0. Это требует перезапуска сеанса отладки. ОЧЕНЬ раздражает, особенно для веб-приложений.
источник
Стоит отметить, что время сборки будет увеличено для пользователей VS 2015 после :
Те, кто использует VS 2015 и должны сохранить этот пакет в своих проектах, могут исправить увеличение времени сборки .
Отредактируйте файл
packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props
и очистите его. Файл должен выглядеть так:Это заставляет проект быть собранным, как это было до добавления
Microsoft.Net.Compilers
пакетаисточник
Можно использовать полные функции C # 6.0 в Visual Studio 2013, если у вас есть Resharper.
Вы должны включить Resharper Build и вуаля! В Resharper Options -> Build - включите Resharper Build и в «Использовать версию MSBuild.exe» выберите «Последние установленные»
Таким образом, Resharper собирается создавать ваши проекты на C # 6.0 и также не будет подчеркивать код C # 6.0 как недействительный.
Я также использую это, хотя у меня Visual Studio 2015, потому что:
Я помещаю это здесь, поскольку я искал решение этой проблемы в течение некоторого времени и, возможно, это поможет кому-то еще.
источник
Кажется, есть какое-то недопонимание. Итак, вместо того, чтобы пытаться исправить VS2013, вот и ответ от парня Microsoft: https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 60-постоянно быть при поддержке, по-против-2013? форум = Рослин
Поэтому, пожалуйста, прочитайте его и установите VS2015.
источник