2015-12-07 4 views
26

Ho un po 'di confusione riguardo a Roslyn.Come utilizzare roslyn C# compiler con visual studio 2015?

Cosa ho fatto: Ho installato vs edizione 2015 della community e download in extensibilty> download sdk della piattaforma di compilazione.

Così ho creato un'applicazione di console semplice: ciao esempio mondo.

Bene, ora mi aspetto di scegliere il compilatore C# tra quello predefinito vs2015 e roslyn ..., ma non ho trovato tale opzione. Quindi la mia prima domanda è: come selezionare la versione del compilatore C#?

In secondo luogo ho scaricato master-roslyn e ho compilato, quindi ho trovato csc.exe, beh le cose strane è che se avessi lanciato l'exe ho ottenuto la versione del compilatore C# 42.42.42.42. ???? Destra?

Quindi ho seguito alcuni tutorial, ma a tutti gli effetti: per caricare una sorgente da un file di testo o una stringa di vars e analizzare o modificare la struttura della sintassi, quindi compilare a var.

Bene a questo punto mi sono confuso ... Allora:

Cos'è Roslyn esattamente? Un meta compilatore? Ciò significa che posso modificare il mio codice in fase di esecuzione proprio come Reflection? Secondo: come si può compilare con vs2015 con csc predefinito o scegliere roslyn? terzo: Se costruisco una versione personalizzata di roslyn Come posso compilare il mio sorgente usando Vs2015? Che sanno se csc.exe è roslyn? Nessuna guida o riga di comando stampa il nome in codice.

Grazie

risposta

36

così sembra che hai un paio di domande:

cosa è Roslyn?

Roslyn è il nuovo compilatore predefinito all'interno di Visual Studio 2015. Se si creano e si eseguono applicazioni in Visual Studio 2015, vengono compilate con il compilatore di Roslyn. Potrai trarre vantaggio da tutte le nuove funzionalità di C# 6 disponibili solo all'interno del nuovo compilatore.

Se stai usando VS2015, Roslyn ha sostituito il vecchio compilatore del tutto e, per quanto ne so non è possibile utilizzare il vecchio compilatore all'interno di VS 2015.

Roslyn è anche una piattaforma che ti permette di costruire programmi che possono modificare, interpretare e comprendere altri programmi. Non è pensato per farti scrivere codice che si modifica (anche se probabilmente è possibile fino ad un certo punto).

I casi di utilizzo comuni per Roslyn sono:

  1. costruzione Code Analyzers che forniscono errori e gli avvisi all'interno di Visual Studio.
  2. Estensioni dell'edificio per Visual Studio che comprendono il codice sorgente.
  3. Creazione di altri strumenti che comprendono o eseguono il codice sorgente. Esempio: ScriptCS - Scripting con codice C#.

Per utilizzare Roslyn per questi scopi, si estrae i pacchetti Microsoft.CodeAnalysis da NuGet. È possibile utilizzare questi pacchetti per analizzare il codice, analizzare gli alberi di sintassi, analizzare simboli o compilare il codice ed emettere IL.

Se siete interessati a saperne di più su Roslyn, ho iniziato una serie chiamata Learn Roslyn Now che potrebbe essere interessato.

Posso sostituire il compilatore?

Sì, è possibile, ma non sono convinto che questa sia una grande idea al di fuori dei test di modifiche che si desidera contribuire a Roslyn. È possibile estrarre Roslyn da GitHub e seguire these instructions per creare ed eseguire Roslyn da Visual Studio.

Se segui queste istruzioni, sarai in grado di eseguire il progetto Roslyn con F5. Avvierà una nuova istanza di Visual Studio che utilizza il compilatore personalizzato. Da questo momento in poi le persone esterne a Microsoft contribuiranno con funzionalità al compilatore. (In precedenza non è possibile distribuire il compilatore personalizzato su Visual Studio, ma è stato risolto in Visual Studio Update 1).

+0

sì, vedo un canale utube, molto buono! Si prega di continuare con l'esempio e il video su roslyn e l'uso pratico ... grazie :), ma sai perché la versione master ha 42.42.42.42 come versione stampata? Qualche buona ragione? thx – LXG

+1

Ecco il link al canale youtube di JoshVarty su Roslyn. Davvero molto interessante e grandi sforzi da parte sua. https://www.youtube.com/watch?v=wXXHd8gYqVg&list=PLxk7xaZWBdUT23QfaQTCJDG6Q1xx6uHdG – RBT

+0

* "apri i pacchetti Microsoft.CodeAnalysis da NuGet." * Quindi questo è ciò che mi ha confuso. Pensavo che tutto ciò che doveva essere già incluso in VS 2015, ma suppongo che non lo sia. –

9

Roslyn è due cose:

  1. Un'API che permette di vedere le cose "compilatore" come gli alberi di sintassi e simboli.
  2. Un nuovo csc.exe implementato in cima al numero 1.

Se si vuole fare cambia al compilatore e l'uso che per costruire, dare un'occhiata a these instructions se non l'hai già. Esistono diversi modi per creare la propria versione di csc.exe e utilizzarla per creare qualcosa. Ma non esiste una finestra di dialogo "scelta" come quella che stai cercando.

1

Roslyn è il compilatore predefinito di Visual Studio 2015. Pertanto, se si installa VS2015, si sta già utilizzando Roslyn.

Roslyn è un nome in codice per .NET Compiler Platform e fornisce compilatori C# open source e Visual Basic. Il progetto è disponibile su github.