我有一个在 VS14 ctp3 中创建的解决方案,它运行良好。
更新到 VS14 ctp4 并且我有很多错误。
Error Diagnostic_CS 2 'CancellationToken' is ambiguous in the namespace 'System.Threading'.
如何?
错误Diagnostic_CS 4方法'公共子Check_FormatString(节点作为Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax,sm作为Microsoft.CodeAnalysis.SemanticModel,addDiagnostic作为System.Action(Microsoft.CodeAnalysis.Diagnostic),ct作为CancellationToken,fsi作为整数, ArgObjs As System.Collections.Generic.IEnumerable(Of Object))' 没有与委托 'Delegate Sub System.Action(Of Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax, Microsoft.CodeAnalysis.SemanticModel, System. Action(Of Microsoft.CodeAnalysis.Diagnostic), CancellationToken, Integer, System.Collections.Generic.IEnumerable(Of Object)) (arg1 As Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax, arg2 As Microsoft.CodeAnalysis.SemanticModel, arg3 As System .操作(Microsoft.CodeAnalysis.Diagnostic),arg4 作为 CancellationToken,arg5 作为整数,arg6 作为 System.Collections.Generic.IEnumerable(对象))'。]
我什至不理解第二个中提到的代表。arg1、arg2 参数有什么用。
错误 Diagnostic_CS 71 类 'DiagnosticAnalyzer' 必须实现 'Sub AnalyzeNode(node As Microsoft.CodeAnalysis.SyntaxNode, semanticModel As Microsoft.CodeAnalysis.SemanticModel, addDiagnostic As System.Action(Of Microsoft.CodeAnalysis.Diagnostic), options As Microsoft.CodeAnalysis.Diagnostics .AnalyzerOptions,cancellationToken As System.Threading.CancellationToken)' 用于接口 'ISyntaxNodeAnalyzer(Of SyntaxKind)'。
它已实施。我认为这是因为 cancelToken 被报告为模棱两可。
它的根本原因/问题是什么,所以我可以解决它?
编辑
加载解决方案时,项目缺少对
System.Runtime
System.Threading
尝试添加参考缺失参考。还是编译不出来。