分析器 'Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.FunctionAnalyzer' 引发了 'System.NullReferenceException' 类型的异常
Analyzer 'Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers.FunctionAnalyzer' threw an exception of type 'System.NullReferenceException'
我在构建 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)
> ----- '.
DurableTask Analyzer 是一种 Roslyn 分析器,可在使用 Durable Functions 时检查您的代码是否存在不一致,以帮助您防止常见错误。它现在是 DurableFunctions 扩展的一部分。
您使用的是最新版本的 Durable Functions,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.1
- 打开
nuspec
文件并注释掉(或删除)Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers
的两个依赖项、一个 .NETFramework4.6.1
的依赖项和一个 .NETStandard2.0
.[=35 的依赖项=]
- 保存 nuspec
- 在您的 IDE 中,删除对 DurableTask 扩展的包引用。
- 再次添加 DurableTask 扩展。由于该包仍在您的本地文件夹中,因此不应从 nuget.org 下载。它将加载扩展但现在不使用分析器。它很笨拙,但它确实有效。
顺便说一句,我得到了和你一样的错误。我会在 GitHub 检查问题,如果还没有完成,我会在那里添加一个新问题。
更新:GH issue 已创建。
我必须将最新的 DurableTask.Analyzers 包 (v0.3.0) 添加到我的项目中才能解决此问题。
目前 DurableTask 软件包 (v2.2.2) 仍然使用 DurableTask.Analyzers v0.2.3,它会在构建
时发出警告
我在构建 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)
> ----- '.
DurableTask Analyzer 是一种 Roslyn 分析器,可在使用 Durable Functions 时检查您的代码是否存在不一致,以帮助您防止常见错误。它现在是 DurableFunctions 扩展的一部分。
您使用的是最新版本的 Durable Functions,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.1
- 打开
nuspec
文件并注释掉(或删除)Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers
的两个依赖项、一个.NETFramework4.6.1
的依赖项和一个.NETStandard2.0
.[=35 的依赖项=] - 保存 nuspec
- 在您的 IDE 中,删除对 DurableTask 扩展的包引用。
- 再次添加 DurableTask 扩展。由于该包仍在您的本地文件夹中,因此不应从 nuget.org 下载。它将加载扩展但现在不使用分析器。它很笨拙,但它确实有效。
顺便说一句,我得到了和你一样的错误。我会在 GitHub 检查问题,如果还没有完成,我会在那里添加一个新问题。
更新:GH issue 已创建。
我必须将最新的 DurableTask.Analyzers 包 (v0.3.0) 添加到我的项目中才能解决此问题。
目前 DurableTask 软件包 (v2.2.2) 仍然使用 DurableTask.Analyzers v0.2.3,它会在构建
时发出警告