引用类型'CancellationToken'声称它在'System.Runtime'中定义

时间:2018-05-24 21:58:35

标签: c# roslyn

我正在尝试使用Roslyn api生成一些类,但由于该错误,我无法成功编译生成的代码。听起来:

error CS7069: Reference to type 'CancellationToken' claims it is defined in 'System.Runtime', but it could not be found

我要做的是:

var objLocation = typeof(object).GetTypeInfo().Assembly.Location;
var path = new FileInfo(objLocation);
var directory = path.Directory;
Compilation = Compilation.AddReferences(MetadataReference.CreateFromFile(objLocation));
        Compilation = Compilation.AddReferences(MetadataReference.CreateFromFile(Path.Combine(directory.FullName, "System.dll")));
        Compilation = Compilation.AddReferences(MetadataReference.CreateFromFile(Path.Combine(directory.FullName, "System.Runtime.dll")));

据我所知,System.Runtime.dll只是占位符引用不同的库,所以我不明白为什么消息出现以及编译器在这里寻找该类型的原因。

有人能说点什么吗?

1 个答案:

答案 0 :(得分:0)

听起来像是在编译.net核心。

CancellationToken位于mscorlib.dll中,因此您也需要引用它。