私は疑問に思います:RoslynはMsBuildとどの程度正確に関連していますか?
私の理解は
また、MsBuildにはmsbuild.exeも同梱されています。これにより、間違っている場合は修正され、実際にプロジェクトをコンパイルできます。しかし、msbuild.exeがプロジェクトをコンパイルできるとすると、これはRoslynとどのように結びつきますか?
MSBuild 15の場合、msbuild.exeはRoslynを使用してコンパイルしますか?それらは完全に分離していますか?私は何か誤解していますか?
さらに、より具体的に:プログラムで単純な.csprojファイルを作成し、RoslynのMSBuildWorkspaceを使用してこれらを処理/設定し、最後にコンパイルすることを想定しています。アプリケーションのエンドユーザーは、Microsoftのビルドツールをマシンにインストールする必要がありますか?または、RoslynがローカルのMSBuildインストールとは無関係にこれらを読み取ってコンパイルできるため、これは必要ありませんか?
MSbuildはVisual Studioのビルドシステムです。 C#コンパイラを呼び出してC#プロジェクトをコンパイルします。 RoslynはC#コンパイラー(およびVBコンパイラー)なので、msbuildはRoslynを使用します。
ただし、Roslynには、コンパイラー以外にも多くのものが含まれています。また、IDE機能(補完リスト、色付け、コード修正など))を提供するVSプラグインも含まれています。
さらに、Roslynはソースコードを分析するためのAPIでもあり、独自のアプリから使用できます。この最後のシナリオには、MSBuildWorkspaceと呼ばれるAPIがあり、これを使用してプロジェクトまたはソリューションを分析用に開くことができます。このワークスペースは、MSBuildを使用して、プロジェクトとソリューションのすべての部分を把握します。したがって、Roslynのこの部分ではMSBuildを使用します。