Como usar o C # 7 com o Visual Studio 2015?

146

O Visual Studio 2017 (15.x) oferece suporte ao C # 7, mas e o Visual Studio 2015 (14.x)?

Como posso usar o C # 7 com ele?

Luis Teijon
fonte
2
consulte este link: strathweb.com/2016/03/…
Sunil Kumar
8
@SunilKumar: Isso os habilita no VS 15 (que é o VS 2017). Não menciona o VS 2015 (que é o VS 14) em qualquer lugar.
Jon Skeet

Respostas:

162

Você pode substituir o compilador enviado pelo Visual Studio para uma versão habilitada para C # 7 instalando o pacote Nuget Microsoft.Net.Compilers :

A referência a este pacote fará com que o projeto seja criado usando a versão específica dos compiladores C # e Visual Basic contidos no pacote, em oposição a qualquer versão instalada do sistema.

Não há indicação de que eu possa ver na página do pacote se isso é oficialmente suportado no Visual Studio 2015. Até agora, meus testes não detalhados indicam que ele funciona, mas não é indolor - o código C # 7 é compilado, mas está sublinhado com o vermelho linha ondulada que indica um erro de sintaxe: Captura de telaObserve que você também precisará instalar o pacote Nuget System.ValueTuple para usar os novos recursos das tuplas de valor C # 7.

Stephen Kennedy
fonte
9
Nesse caso, seria melhor usar o VIsual Studio Code ou simplesmente instalar a Comunidade Visual Studio 2017
Panagiotis Kanavos
3
Isso é uma coisa boa de saber. Portanto, você pode mudar lentamente alguns projetos para o VS2017, sabendo que em caso de emergência outros desenvolvedores podem trabalhar com seu código.
Ecth 21/04
10
Observe que, em teoria, eu concordo com o @PanagiotisKanavos se seu funcionário de uma empresa de médio ou grande porte VS2017 Community Edition provavelmente não for válido para ser usado como licenciado. Eu acredito que o VS Code é verdadeiro FOSS.
Chris Marisic
6
Instalei o nuget mais recente do Microsoft.Net.Compilers nos meus projetos Xamarin.Forms UWP, Windows 8.1 e Windows Phone 8.1, bem como o mais recente nuget System.ValueTuple (além da revisão mais recente de todos os outros nugets da série System. *) . Tudo parece funcionar bem na compilação e no tempo de execução. (Eu não tentei cada canto e recanto do conjunto de recursos do depurador.)
optikos
13
VS2015.3, compilando para o .NET 4.7.1: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- Eu precisava usar esta versão: nuget.org/packages/Microsoft.Net.Compilers/2.4.0 para compilá-lo e funcionou bem. :)
CAD cara
5

No meu caso, instalar apenas o Microsoft.Net.Compilers não funcionou. Em vez disso, tive que fazer o seguinte:

  1. Instale Microsoft.CodeDom.Providers.DotNetCompilerPlatform para o projeto ( Ferramentas => NuGet Package Manager => Gerenciar pacotes Nuget para a solução ... ) e instale Microsoft.CodeDom.Providers.DotNetCompilerPlatform .
  2. Instale os Microsoft.Net.Compilers mais recentes para o projeto
  3. Instale qualquer outro pacote NuGet para o recurso C # mais recente que você deseja usar. No meu caso, meu objetivo era usar as Tuplas, então instalei o System.ValueTuple e funcionei bem.

Mas observe ainda que os códigos C # que não são conhecidos pelo compilador padrão do Visual Studio 2015 ainda terão rabiscos vermelhos por baixo.

yibe
fonte