Como habilitar o recurso C # 6.0 no Visual Studio 2013?

Eu estava passando pelos resources mais recentes introduzidos no C # 6.0 e apenas segui um exemplo de inicializador de propriedade automática,

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

mas meu IDE não reconheceu a syntax.

Eu estou querendo saber como eu poderia ativar o C # 6.0 no Visual Studio 2013. A estrutura de destino que estou usando é 4.5.1.

Informações para software de pré-lançamento obsoleto:

De acordo com isso , é apenas uma instalação e vá para o Visual Studio 2013:

Na verdade, instalar o compilador C # 6.0 a partir desta versão envolve pouco mais do que instalar uma extensão do Visual Studio 2013, que por sua vez atualiza os arquivos de destino do MSBuild.

Então, basta pegar os arquivos em https://github.com/dotnet/roslyn e você está pronto para começar.

Você precisa saber que é uma versão desatualizada das especificações implementadas lá, já que elas não atualizam mais o pacote para o Visual Studio 2013 :

Você também pode tentar a Visualização do Usuário Final de abril, que é instalada sobre o Visual Studio 2013. (observação: essa visualização do VS 2013 está desatualizada e não é mais atualizada)

Então, se você quiser usar a versão mais recente, faça o download do Visual Studio 2015 .

Sob VS2013 você pode instalar os novos compiladores no projeto como um pacote nuget . Dessa forma, você não precisa do VS2015 ou de um servidor de compilation atualizado.

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

 Install-Package Microsoft.Net.Compilers 

O pacote permite que você use / construa o código / syntax do C # 6.0. Como o VS2013 não reconhece nativamente a nova syntax do C # 6.0, ele mostrará erros na janela do editor de código, embora ele seja bem estruturado .

Usando o Resharper, você obterá linhas sinuosas nos resources do C # 6, mas o bulbo oferece a opção de ‘Habilitar o suporte ao C # 6.0 para este projeto’ (configuração salva em .DotSettings).

Como mencionado por @ stimpy77: para suporte nas visualizações do MVC Razor você precisará de um pacote extra (para aqueles que não lerem os comentários)

 Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 

Se você quiser suporte completo ao C # 6.0, precisará instalar o VS2015.

Vale ressaltar que o tempo de construção será aumentado para usuários do VS 2015 após :

 Install-Package Microsoft.Net.Compilers 

Aqueles que estão usando o VS 2015 e precisam manter esse pacote em seus projetos podem corrigir o aumento do tempo de construção .

Edite o arquivo packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props e limpe-o. O arquivo deve se parecer com:

   

Fazer isso força um projeto a ser construído como era antes de adicionar Microsoft.Net.Compilers pacote Microsoft.Net.Compilers

Muitas das respostas aqui foram escritas antes de Roslyn (os compiladores .NET C # e VB de código aberto) passarem para o .NET 4.6. Então, eles não o ajudarão se o seu projeto for, digamos, 4.5.2 como o meu (herdado e não pode ser alterado).

Mas você pode pegar uma versão anterior do Roslyn em https://www.nuget.org/packages/Microsoft.Net.Compilers e instalá-la em vez da versão mais recente. Eu usei 1.3.2. (Eu tentei 2.0.1 – que parece ser a última versão que roda no .NET 4.5 – mas não consegui compilar *.) Execute isso no console do Gerenciador de Pacotes no VS 2013:

 PM> Install-Package Microsoft.Net.Compilers -Version 1.3.2 

Em seguida, reinicie o Visual Studio. Eu tive alguns problemas inicialmente; você precisa definir a versão do C # de volta ao padrão (o C # 6.0 não aparece na lista de versões, mas parece ter sido o padrão), depois limpe, salve, reinicie o VS e recompile.

Curiosamente, eu não tive nenhum erro do IntelliSense devido aos resources do C # 6.0 usados ​​no código (que eram o motivo para querer o C # 6.0 em primeiro lugar).

* versão 2.0.1 jogou erro A “tarefa Microsoft.CodeAnalysis.BuildTasks.Csc não pôde ser carregada do assembly Microsoft.Build.Tasks.CodeAnalysis.dll. Não foi possível carregar o arquivo ou assembly ‘Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a ‘ou uma de suas dependencies. O sistema não pode encontrar o arquivo especificado. Confirme se a declaração está correta, se a assembly e todas as suas dependencies estão disponíveis e se a tarefa contém um Classe pública que implementa Microsoft.Build.Framework.ITask.

UPDATE Uma coisa que eu notei desde postar esta resposta é que se você alterar qualquer código durante a debugging (“Edit and Continue”), você vai gostar de descobrir que o seu código C # 6.0 será mostrado repentinamente como erros no que parece se reverter um ambiente pré-C # 6.0. Isso requer um reinício da sua session de debugging. Muito chato, especialmente para aplicações web.

É possível usar resources completos do C # 6.0 no Visual Studio 2013 se você tiver o Resharper.
Você tem que habilitar o Resharper Build e voilá! Em Resharper Options -> Build – habilite o Resharper Build e em “Use MSBuild.exe version” escolha “Latest Installed”

Desta forma, o Resharper irá construir seus Projetos C # 6.0 e também não irá sublinhar o código C # 6.0 como inválido.

Eu também estou usando isso, embora eu tenha o Visual Studio 2015 porque:

  1. Testes de unidade no Resharper não funcionam para mim com o Visual Studio 2015 por algum motivo
  2. O VS 2015 usa muito mais memory do que o VS 2013.

Eu estou colocando isso aqui, como eu estava procurando uma solução para este problema há algum tempo e talvez ajude alguém.

Parece que há algum mal entendido. Portanto, em vez de tentar corrigir o VS2013 aqui e responda com um cara da Microsoft: https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 60-ever-be-supported-by-vs-2013? Fórum = Roslyn

Então, por favor, leia e instale o VS2015.