厳密には技術的な観点からです。Roslynは、特定のC2#プロジェクトだけでキックインしてコンパイルするC#の変種 - たとえばC2# - としてmodded、repacked、およびdistributionできますか?
VS2015のインストールごとに1つのRoslynがありますが、複数の言語とコンパイラが並んでいます。 Visual Studioは、編集/コンパイルされたプロジェクトタイプ(またはアイテムタイプ)の定義に基づいて、適切な拡張機能とコンパイラをコンテキストに基づいて起動します。 Visual Studio用の言語を構築する開発者は、それらの定義を開発し、それらは言語とともにVSにインストールされます。
Q1。言語開発者がこれらの(定義、プロジェクト、アイテムのテンプレートなど)を開発すると、Roslynは1つの真のC#/ VB Roslynと並んで別の言語/コンパイラに改造/ブランド化できますか?
Q2。そうでない場合は、ここで技術的な制限はありますか?
Q3。 RoslynのアーキテクチャとVSとの関係が、一般的なサードパーティの言語/コンパイラとは根本的に異なるという制限がある場合、理論的な回避策はありますか?例えば。一般的なサードパーティの言語/コンパイラとまったく同じ方法でVSに収まるようにModled Roslynをラップしますか?
私がインクリメンタルな機能をC#にしか考えていない場合はどうすればよいですか? C#のスーパーセットバリアント。新しいキーワード(例:アクセス修飾子)を追加したり、ビルド時にC#コード生成を使用してその効果を実装したりしますか?あなたはこのmodded Roslynを標準のC#/ VB Roslynでパッケージ化し、配布し、次に実行できると思いますか?もしそうなら、非常に面白いことが起こる可能性があるからです。 – Mart
@Mart:並行して実行すると、私の2番目の選択肢に記載されている莫大な努力が必要になります。これは非常にサポートされていません。 – SLaks
簡単に実現できるVS内でC#コンパイラのあなたのバージョンを実行したいだけの場合。実際、これはMicrosoft.Net.Compilersのnugetパッケージの機能です。それはcsc.exeを出荷し、.propsファイルに 'CscToolExe'プロパティをオーバーライドします。しかし、これはIDEの機能などでは役に立ちません。 – Tamas