Qodana for .NET
Edit page Last modified: 04 November 2022note
Qodana for .NET is currently in Early Access, which means it may be not reliable, work not as intended, and contain errors. Any use of the EAP product is at your own risk. Your feedback is very welcome in our issue tracker or at qodana-support@jetbrains.com.
Qodana for .NET is based on Rider and provides static analysis for .NET projects. It brings all the smarts from Rider, which help you:
Detect anomalous code and probable bugs
Eliminate dead code
Highlight spelling problems
Improve overall code structure
Introduce coding best practices
Analyze a project locally
Install project dependencies
Qodana for .NET is suitable for analyzing .NET Core projects and provides the following SDK versions:
3.1.425
6.0.403
7.0.100
All SDK versions are stored in the /usr/share/dotnet/sdk
directory of the Qodana for .NET container filesystem.
note
Functionality of .NET Framework-based project analysis will be added in future versions of the linter. Currently, it is not recommended to inspect projects that require .NET Framework.
In case a project requires a different version of the SDK, you can set it up before running the analysis using the bootstrap
field in the qodana.yaml
file. For example, this command will install the required version of the SDK that is specified in the global.json
file and located in the root of your project:
bootstrap: curl -fsSL https://dot.net/v1/dotnet-install.sh |
bash -s -- --jsonfile /data/project/global.json -i /usr/share/dotnet
Run analysis
By default, Qodana tries to locate and employ a single solution file, or, if no solution file is present, it tries to find a project file. If your project contains multiple solution files, you need to specify the exact file name using the --property
option. For example, to make Qodana always analyze the MySolution.sln
solution file, you can use:
--property=qodana.net.solution=MySolution.sln
Alternatively, you can specify the solution file name in the qodana.yaml
file using the solution
option:
dot-net:
solution: MySolution.sln
If you project contains no solution files and multiple project files, you need to specify the exact file name of a project. For example, for the MyProject.csproj
project file it can be:
--property=qodana.net.project=MyProject.csproj
Alternatively, you can specify the project file name in the qodana.yaml
file using the project
option:
dot-net:
project: MyProject.csproj
Qodana provides two options for local analysis of your code. Qodana CLI is the easiest option to start. Alternatively, you can use the Docker command from the Docker image tab.
Assuming that you have already installed Qodana CLI on your machine, you can run this command in the project root directory:
$qodana scan -l jetbrains/qodana-dotnet:2022.3-eap --show-report
To start, pull the image from Docker Hub (only necessary to get the latest version):
$docker pull jetbrains/qodana-dotnet:2022.3-eap
Start local analysis with source-directory
pointing to the root of your project:
$docker run --rm -it \ -v <source-directory>/:/data/project/ \ -p 8080:8080 jetbrains/qodana-dotnet:2022.3-eap --show-report
Open http://localhost:8080
in your browser to examine inspection results. Here, you can also reconfigure the analysis, see the User interface overview section for details. When done, you can stop the web server by pressing Ctrl-C in the console.