Analyzer'Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.FunctionAnalyzer'引发了'System.NullReferenceException'类型的异常

问题描述 投票:0回答:1

构建Azure功能项目时收到此警告。堆栈跟踪中没有太多细节。谁能帮我弄清楚这个错误吗?

> CSC : warning AD0001: Analyzer
> 'Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.FunctionAnalyzer'
> threw an exception of type 'System.NullReferenceException' with
> message 'Object reference not set to an instance of an object.'.

这是堆栈跟踪,如果有帮助的话:

> Severity  Code    Description Project File    Line    Suppression State   Detail
> Description Warning   AD0001  Analyzer
> 'Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.FunctionAnalyzer'
> threw an exception of type 'System.NullReferenceException' with
> message 'Object reference not set to an instance of an
> object.'. 
        1   Active  Analyzer
> 'Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.FunctionAnalyzer'
> threw the following exception: 'Exception occurred with following
> context: Compilation: 
> 
> System.NullReferenceException: Object reference not set to an instance
> of an object.    at
> Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.ArgumentAnalyzer.TryGetInputFromDurableContextCall(SemanticModel
> semanticModel, SyntaxNode definitionInput, SyntaxNode&
> inputFromContext)    at
> Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.ArgumentAnalyzer.TryGetDefinitionInputType(SemanticModel
> semanticModel, ActivityFunctionDefinition functionDefinition,
> ITypeSymbol& definitionInputType)    at
> Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.ArgumentAnalyzer.ReportProblems(CompilationAnalysisContext
> context, SemanticModel semanticModel, IEnumerable`1
> availableFunctions, IEnumerable`1 calledFunctions)    at
> Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.FunctionAnalyzer.RegisterAnalyzers(CompilationAnalysisContext
> context)    at
> Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.<>c.<ExecuteCompilationActionsCore>b__46_1(ValueTuple`2
> data)    at
> Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor.ExecuteAndCatchIfThrows_NoLock[TArg](DiagnosticAnalyzer
> analyzer, Action`1 analyze, TArg argument, Nullable`1 info)
> ----- '.
c# .net visual-studio azure-functions roslyn-code-analysis
1个回答
1
投票

DurableTask分析器是Roslyn分析器,在使用Durable Functions时可以检查您的代码是否不一致,以帮助您防止常见错误。现在,它是DurableFunctions扩展的一部分。

您是否正在使用最新版本的持久功能v2.2.1?该版本包含DurableTask Analyzer v0.2.1的最新版本作为依赖项,并且似乎其中存在导致异常的错误。

您可以删除Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers依赖项作为一种解决方法,以避免按以下方式获取此异常:

  • 转到存储DurableTask软件包的本地文件夹。对我来说是:C:\Users\%User%\.nuget\packages\microsoft.azure.webjobs.extensions.durabletask\2.2.1
  • 打开nuspec文件,并注释掉(或删除)Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers的两个依赖项,.NETFramework4.6.1的一个依赖项,和.NETStandard2.0的一个依赖项。
  • 保存核子
  • 在您的IDE中,删除对DurableTask扩展的程序包引用。
  • 再次添加DurableTask扩展名。由于该软件包仍位于您的本地文件夹中,因此不应从nuget.org下载该软件包。它将加载扩展名,但现在不会与分析器一起加载。它很hack,但是可以用。

我和您遇到同样的错误。我将在GitHub处检查问题,如果尚未完成,将在其中添加新的问题。

更新:GH issue已创建。

© www.soinside.com 2019 - 2024. All rights reserved.