web-dev-qa-db-ja.com

Visual Studio 2015でRoslyn C#コンパイラを使用するには?

私はroslynについて少し混乱しています。

私がやったこと:2015コミュニティエディションと2015拡張版をインストールし、コンパイラプラットフォームSDKをダウンロードします。

そこで、単純なコンソールアプリケーションを作成しました:hello world example。

さて、私はvs2015のデフォルトのものとroslynの間でc#コンパイラを選択する予定ですが、そのようなオプションは見つかりませんでした。だから私の最初の質問は:C#コンパイラのバージョンを選択する方法ですか?

次に、master-roslynをダウンロードしてビルドし、csc.exeを見つけました。exeを起動すると、c#コンパイラバージョン42.42.42.42が取得されるという奇妙なことです。 ????右?

その後、いくつかのチュートリアルに従いましたが、目的はテキストファイルまたは文字列変数からソースをロードし、構文ツリーを分析または変更してから、varにコンパイルすることです。

この時点で私は混乱しています...だから:

ロズリンとは正確には何ですか?メタコンパイラ?つまり、Reflectionのように実行時にコードを変更できるということですか?第二:デフォルトのCSCでvs2015でコンパイルするか、roslynを選択するにはどうすればよいですか? 3番目:roslynのカスタムバージョンをビルドする場合Vs2015を使用してソースをコンパイルするにはどうすればよいですか? csc.exeがroslynかどうかはどちらですか?コード名を表示するヘルプまたはコマンドラインはありません。

ありがとう

28
LXG

いくつか質問があるようです。

ロザリンとは何ですか?

RoslynはVisual Studio 2015内の新しいデフォルトコンパイラです。VisualStudio 2015内でアプリケーションをビルドおよび実行している場合、Roslynコンパイラでコンパイルされています。新しいコンパイラ内でのみ使用可能なすべての新しいC#6機能を利用できます。

VS2015を使用している場合、Roslynは古いコンパイラを完全に置き換えました。私の知る限り、VS 2015内で古いコンパイラを使用することはできません。

Roslynは、他のプログラムを変更、解釈、理解できるプログラムを構築できるプラットフォームでもあります。実際には、それ自体を変更するコードを作成することを意図したものではありません(ただし、おそらくある程度は可能です)。

Roslynの一般的な使用例は次のとおりです。

  1. ビルド コードアナライザー Visual Studio内でエラーと警告を提供します。
  2. ソースコードを理解するVisual Studioの拡張機能を構築します。
  3. ソースコードを理解または実行する他のツールを構築します。例: ScriptCS -C#コードを使用したスクリプト。

これらの目的でRoslynを使用するには、Microsoft.CodeAnalysis NuGetからのパッケージ。これらのパッケージを使用して、コードの解析、構文ツリーの分析、シンボルの分析、またはコードのコンパイルとILの発行を行うことができます。

Roslynについてもっと知りたい場合は、 Learn Roslyn Now というシリーズを始めました。

コンパイラを交換できますか?

はい、できますが、これがRoslynに貢献したい変更をテストする以外の素晴らしいアイデアだとは思いません。 GitHubからRoslynをプルダウンし、 これらの手順 に従ってVisual Studio内からRoslynをビルドおよび実行できます。

これらの指示に従うと、F5でRoslynプロジェクトを実行できるようになります。カスタマイズされたコンパイラを使用しているVisual Studioの新しいインスタンスを起動します。これが、Microsoft以外の人々が今後コンパイラに機能を提供する方法です。 (以前は、カスタムコンパイラをVisual Studioに展開できませんでしたが、Visual Studio Update 1で修正しました)。

38
JoshVarty

ロズリンは2つのことです:

  1. 構文ツリーやシンボルのような「コンパイラー」を見ることができるAPI。
  2. #1の上に実装される新しいcsc.exe。

コンパイラにchangesを作成し、それを使用してビルドする場合は、 これらの手順 を参照してください。すでに。独自のバージョンのcsc.exeを作成し、それを使用して何かをビルドする方法はいくつかあります。しかし、あなたが探しているような「選択」ダイアログはありません。

10

RoslynはVisual Studio 2015のデフォルトコンパイラです。したがって、VS2015をインストールする場合は、すでにRoslynを使用しています。

Roslynは。NETコンパイラプラットフォームのコードネームであり、オープンソースのC#およびVisual Basicコンパイラを提供します。プロジェクトは github で利用できます。

2
Marcello