Microsoft.AspNetCore.Mvc.Analyzers.TopLevelParameterNameAnalyzer 引发了 'System.NullReferenceException' 类型的异常

Microsoft.AspNetCore.Mvc.Analyzers.TopLevelParameterNameAnalyzer threw an exception of type 'System.NullReferenceException'

我正在将包从 .Net Core 2.1 更新到 .NET 5.0。我已将所有程序集更新到最新版本,但从 Analyzer 包中收到以下错误:

出现此错误的原因是包含了之前更新到 .NET 5.0 的其他一些包。有问题的包都在其项目文件中包含以下内容:

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

这导致 Microsoft.AspNetCore.Mvc.Analyzers 的 2 个版本出现在我的项目依赖项中,因此我得到了错误。

无论如何,只要更新所有包以消除它们包含 Microsoft.AspNetCore.App 的需要(超出当前开发范围),有人对如何解决这个问题有任何建议吗?我假设在 .Net 5.0 项目中指定此 FrameworkReference include 是可以的,因为它依赖于核心库。

事实证明,在依赖层次结构的下方,有一些引用围绕着已弃用的 Microsoft.AspNetCore 包,即使包本身已切换为以 .NET 5 框架为目标。

我通过在 VS 的解决方案资源管理器中查看依赖关系找到了有问题的包。

我删除了它们并将它们替换为单个框架参考,如下所示:

Bob 叔叔是你的叔叔,它现在可以工作了。

我升级了 .net 6 并删除了这个包。 不需要这些;删除它们

        <!--<PackageReference Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Localization" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />-->