我正在尝试使用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
只是占位符引用不同的库,所以我不明白为什么消息出现以及编译器在这里寻找该类型的原因。
有人能说点什么吗?
答案 0 :(得分:0)
听起来像是在编译.net核心。
CancellationToken位于mscorlib.dll中,因此您也需要引用它。