使用AdHocWorkspace会导致“不支持语言’C#’。”

使用VS2015中的Microsoft.CodeAnalysis.CSharp.Workspaces的RC2,此代码抛出exception:

var tree = CSharpSyntaxTree.ParseText(...); var workspace = new AdhocWorkspace(); var newRoot = Simplifier.Expand(tree.GetRoot(), compilation.GetSemanticModel(tree, false), workspace, n => true, true, CancellationToken.None); 

exception消息是“不支持语言’C#’。”

我缺少什么让这项工作?

您需要添加对C#Workspaces NuGet包的引用。

这会将C#DLL复制到您的输出,让Roslyn的MEF扫描程序看到语言服务。