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
Microservices vs Monolithic: The Future of Software Development
By Sergio Darias Pérez  |  12 August 2024

We explain the differences between a monolithic architecture development approach vs. microservices. Examples, practical uses and benefits.

Read more
Which Software Development Life Cycle Methodology is the most suitable for your project?
By Carolina César Piepenburg  |  03 June 2024

Find out here which software lifecycle model will allow you to work more efficiently.

Read more
GitHub Copilot Workspace: Improving Developers Productivity
By Carolina César Piepenburg  |  08 May 2024

Find out about the new tool that will improve the developer experience and speed up the code creation process.

Read more