我正在使用“入门:语义分析”演练来检查Roslyn API。
其中有一部分试图添加对编译的引用:

var compilation = Compilation.Create("HelloWorld")
                         .AddReferences(new AssemblyNameReference("mscorlib"))
                         .AddSyntaxTrees(tree);


但似乎API已更改,并且'AssemblyNameReference'不再存在。
或者该文档是错误的,因为“ AddReferences”的命名表明它需要某种IEnumerable。

顺便说一句,我正在寻找正确的实现,以便可以对其进行测试!

最佳答案

2012年9月版的语义分析(CSharp)演练包含以下代码:

var compilation = Compilation.Create("HelloWorld")
                         .AddReferences(MetadataReference.CreateAssemblyReference("mscorlib"))
                         .AddSyntaxTrees(tree);


您可能正在查看早期CTP中的演练版本。尝试在MetadataReference上使用静态工厂方法。

10-08 13:20