Come abilitare la funzionalità C # 6.0 in Visual Studio 2013?

Stavo passando per le ultime funzionalità introdotte in C # 6.0 e ho appena seguito un esempio di inizializzatore automatico delle proprietà,

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

ma il mio IDE non ha riconosciuto la syntax.

Mi chiedo come sia ansible abilitare C # 6.0 in Visual Studio 2013. Il framework Target che sto usando è 4.5.1.

Informazioni per software prerelease obsoleti:

In base a ciò è solo un’installazione e vai a Visual Studio 2013:

Infatti, l’installazione del compilatore C # 6.0 da questa versione comporta poco più dell’installazione di un’estensione di Visual Studio 2013, che a sua volta aggiorna i file di destinazione di MSBuild.

Quindi prendi i file da https://github.com/dotnet/roslyn e sei pronto per partire.

Devi sapere che è una versione obsoleta delle specifiche implementate lì, poiché non aggiornano più il pacchetto per Visual Studio 2013 :

Puoi anche provare l’anteprima utente finale di aprile, che si installa su Visual Studio 2013. (nota: questa anteprima di VS 2013 non è aggiornata e non è più aggiornata)

Quindi, se si desidera utilizzare l’ultima versione, è necessario scaricare Visual Studio 2015 .

Sotto VS2013 è ansible installare i nuovi compilatori nel progetto come pacchetto nuget . In questo modo non hai bisogno di VS2015 o di un server di build aggiornato.

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

 Install-Package Microsoft.Net.Compilers 

Il pacchetto ti permette di usare / compilare codice / syntax C # 6.0. Poiché VS2013 non riconosce in modo nativo la nuova syntax di C # 6.0, mostrerà degli errori nella finestra dell’editor di codice anche se andrà bene .

Usando Resharper, otterrai linee ondulate sulle funzionalità C # 6, ma la lampadina ti offre l’opzione “Abilita supporto C # 6.0 per questo progetto” (impostazione salvata in .DotSettings).

Come menzionato da @ stimpy77: per il supporto nelle viste MVC Razor è necessario un pacchetto aggiuntivo (per quelli che non leggono i commenti)

 Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 

Se si desidera il supporto completo per C # 6.0, è necessario installare VS2015.

Vale la pena ricordare che il tempo di costruzione verrà aumentato per gli utenti di VS 2015 dopo :

 Install-Package Microsoft.Net.Compilers 

Coloro che utilizzano VS 2015 e devono mantenere questo pacchetto nei loro progetti possono risolvere i tempi di costruzione aumentati .

Modifica i packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props file packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props e pulisci. Il file dovrebbe essere simile a:

   

In questo modo si costruisce un progetto come prima di aggiungere il pacchetto Microsoft.Net.Compilers

Molte delle risposte qui sono state scritte prima di Roslyn (i compilatori open source .NET C # e VB) trasferiti su .NET 4.6. Quindi non ti aiuteranno se il tuo progetto ha come objective, ad esempio, 4.5.2 come ha fatto il mio (ereditato e non può essere modificato).

Ma puoi prendere una versione precedente di Roslyn da https://www.nuget.org/packages/Microsoft.Net.Compilers e installarla al posto dell’ultima versione. Ho usato 1.3.2. (Ho provato 2.0.1 – che sembra essere l’ultima versione che gira su .NET 4.5 – ma non ho potuto farlo compilare *. Esegui questo dalla console di Gestione pacchetti in VS 2013:

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

Quindi riavviare Visual Studio. Ho avuto inizialmente un paio di problemi; è necessario impostare la versione C # su quella predefinita (C # 6.0 non appare nell’elenco delle versioni ma sembra essere stato reso predefinito), quindi pulire, salvare, riavviare VS e ricompilare.

È interessante notare che non ho avuto errori di IntelliSense a causa delle funzionalità di C # 6.0 utilizzate nel codice (che erano la ragione per cui volevo C # 6.0 in primo luogo).

* la versione 2.0.1 ha generato un errore Imansible caricare l”attività Microsoft.CodeAnalysis.BuildTasks.Csc dall’assembly Microsoft.Build.Tasks.CodeAnalysis.dll. Imansible caricare il file o l’assembly’ Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a ‘o una delle sue dipendenze. Il sistema non riesce a trovare il file specificato. Confermare che la dichiarazione è corretta, che l’assembly e tutte le sue dipendenze sono disponibili e che l’attività contiene un public class che implementa Microsoft.Build.Framework.ITask.

AGGIORNAMENTO Una cosa che ho notato da quando ho postato questa risposta è che se modifichi qualsiasi codice durante il debug (“Modifica e continua”), ti piacerà scoprire che il tuo codice C # 6.0 mostrerà improvvisamente come errori in quello che sembra tornare a un ambiente pre-C # 6.0. Ciò richiede un riavvio della sessione di debug. MOLTO fastidioso specialmente per le applicazioni web.

È ansible utilizzare le funzionalità complete di C # 6.0 in Visual Studio 2013 se si dispone di Resharper.
Devi abilitare Resharper Build e voilá! In Opzioni di Resharper -> Crea – abilita la creazione di Resharper e in “Usa la versione di MSBuild.exe” scegli “Ultimi installati”

In questo modo, Resharper costruirà i tuoi progetti C # 6.0 e non sottolineerà il codice C # 6.0 come non valido.

Sto anche usando questo anche se ho Visual Studio 2015 perché:

  1. I test delle unità in Resharper non funzionano con Visual Studio 2015 per qualche motivo
  2. VS 2015 utilizza molta più memoria rispetto a VS 2013.

Sto mettendo questo qui, poiché stavo cercando una soluzione per questo problema da qualche tempo e forse aiuterà qualcun altro.

Sembra che ci sia un malinteso. Quindi, invece di provare a correggere VS2013 qui e rispondere da un ragazzo Microsoft: https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 60-mai-essere-supported-by-vs-2013? forum = Roslyn

Quindi, per favore, leggilo e installa VS2015.