使用AdHocWorkspace会导致"不支持语言'C#'."

Aet*_*tus 5 c# code-analysis roslyn

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

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

异常消息是"不支持语言'C#'."

我缺少什么让这项工作?

SLa*_*aks 6

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

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