> For the complete documentation index, see [llms.txt](https://docs.sonarsource.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sonarsource.com/sonarqube-server/analyzing-source-code/dotnet-environments/overview.md).

# Overview

Running .NET analysis on SonarQube Server 2026.5 can be tricky to set up. This page gives you an overview of what’s required depending on your .NET framework.

The .NET SDK is a framework for C# and Visual Basic (VB.NET) programming languages to run on. The .NET APIs have undergone [an evolution](https://en.wikipedia.org/wiki/.NET#.NET_Core) beginning as the .NET Framework (versions 1 - 4.62) and .NET Core (versions 1-3.1), before eventually being released simply as .NET (beginning as version 5).

To run a .NET analysis with Sonar, you must download and install the SonarScanner for .NET; [the installation process](/sonarqube-server/analyzing-source-code/scanners/dotnet/installing.md) will be different as determined by your .NET environment.

After installing the prerequisites, you must download and install the correct SonarScanner. Then, depending on your [CI integration](/sonarqube-server/analyzing-source-code/ci-integration/not-integrated-tools.md), different steps must be taken to make the SonarScanner work properly. For example, if you intend to run your analysis with GitHub Actions, you’ll need to configure your GitHub workflow build.yml. See the [GitHub Actions](/sonarqube-server/analyzing-source-code/ci-integration/github-actions.md#configure-build-yml) article inside of the [GitHub](/sonarqube-server/discovering/devops-platforms/github.md) pages.

If your build environment is on Azure DevOps, our [Marketplace extension](https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarqube), the [Azure DevOps Extension](/sonarqube-server/analyzing-source-code/scanners/sonarqube-extension-for-azure-devops.md) for SonarQube Server, and the [Azure DevOps](/sonarqube-server/discovering/devops-platforms/azure-devops.md) pages will be an invaluable resource.

## The SonarScanner <a href="#the-sonarscanner" id="the-sonarscanner"></a>

Even if you’re already familiar with SonarQube Server and SonarQube Cloud, analyzing a .NET application is a little different than when using the SonarScanners for [Maven](/sonarqube-server/analyzing-source-code/scanners/sonarscanner-for-maven.md) or [Gradle](/sonarqube-server/analyzing-source-code/scanners/sonarscanner-for-gradle.md). Whereas the SonarScanner normally scans existing code or projects that are *already built*, the SonarScanner for .NET analyzes the code [*while the build is in process*](https://learn.microsoft.com/en-us/visualstudio/code-quality/roslyn-analyzers-overview?view=vs-2022).

Once the build is complete and your code is analyzed, results are gathered by the SonarScanner running on your CI and sent to SonarQube Server (or SonarQube Cloud) for review. The analysis processes are integrated with the build and it is expected that your build time will increase by a factor of three or four times; this is normal because it takes extra time to run the analysis *during the build process*.

After you’ve run your first analyses and sent the results to SonarQube Server (or SonarQube Cloud) to check, you can focus the analysis as part of your build process by setting up [.NET test coverage](/sonarqube-server/analyzing-source-code/dotnet-environments/dotnet-test-coverage.md) using a third-party tool to access important metrics.

## Taking your first steps <a href="#first-steps" id="first-steps"></a>

Take a look at the [Getting started with .NET](/sonarqube-server/analyzing-source-code/dotnet-environments/getting-started-with-net.md) page to learn about configuring your pipeline, running code coverage, and generating reports. Then use the [SonarScanner for .NET](/sonarqube-server/analyzing-source-code/scanners/dotnet.md) pages to reference the technical details about using the scanner.

## Related pages <a href="#related-pages" id="related-pages"></a>

* [Azure DevOps Extension](/sonarqube-server/analyzing-source-code/scanners/sonarqube-extension-for-azure-devops.md)
* [.NET test coverage](/sonarqube-server/analyzing-source-code/test-coverage/dotnet-test-coverage.md)
* [Specifying test projects](/sonarqube-server/analyzing-source-code/dotnet-environments/specify-test-project-analysis.md)
* The [VB.NET](/sonarqube-server/analyzing-source-code/languages/vb-dotnet.md) and [C#](/sonarqube-server/analyzing-source-code/languages/csharp.md) language pages
* [Troubleshooting](/sonarqube-server/analyzing-source-code/dotnet-environments/troubleshooting.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.sonarsource.com/sonarqube-server/analyzing-source-code/dotnet-environments/overview.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
