Menu

WORKAROUND: AD0001 Analyzer 'Microsoft.AspNetCore.Mvc.Analyzers.TopLevelParameterNameAnalyzer' threw an exception

Hello folks! This is just a quick blog post to show a workaround to https://github.com/dotnet/aspnetcore/issues/14723 (couldn't comment there because the msftbot locked the issue as resolved and limited the conversation to collaborators). I'm currently building a .NET 5 WebAPI project, that references Application Insights between other dependencies, causing that when building the project I'm getting a lot errors like the one below:

CSC : warning AD0001: Analyzer 'Microsoft.AspNetCore.Mvc.Analyzers.TopLevelParameterNameAnalyzer' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'.

As described in the GitHub thread, the cause is because we are mixing dependencies of 5.0 and 2.2 core versions.

githubthread

The proposed workaround in the thread is to completely disable the Code Analysis, but I wanted to find a less dramatic approach.

Workaround

When checking the rules on the Microsoft.AspNetCore.Mvc.Analyzers, found just these 5 rules on the 2.2 assembly:

microsoft-aspnetcore-mvc-analytzers

My approach was to just try disable these rules and allow all the others to run. But surprise, when testing disabling the rules, seems that the one causing the "TopLevelParameterNameAnalyzer" exception was the MVC1004.

Here is the quick workaround:

  1. Add a new item to the WebAPI project
  2. In the search box add "editorconfig" and then select the "editorconfig File (.NET)". Use the ".editorconfig" as name for the file
    editorconfig
  3. Under the [*.{cs,vb}] section, add the rule "dotnet_diagnostic.MVC1004.severity = none" to disable this rule, and save the file

    dotnet-diagnostic
  4. Build the project and voilà, problem solved! I continue getting other code analysis warnings, but not this one.

Hope this helps!

 
Related posts
When to use BDD VS TDD? Differences and Use Cases
By Sergio Darias Pérez  |  19 January 2024

Discover the differences between BDD and TDD, how these software development approaches improve efficiency on every project and when to use them.

Read more
What is TDD or Test Driven Development and what is it for?
By Sergio Darias Pérez  |  16 February 2023

In this post we explain the TDD or Test Driven Development approach during the software life cycle and its advantages.

Read more
Cool extensions for Visual Studio Code: Rest Client
By Héctor García Delgado  |  30 August 2022

How to test and work with a web API from Visual Studio Code thanks to Rest Client. In this post we will tell you how it works step by step 😉

Read more