It looks like these are the latest versions of the 2 C# Sonar scanners I know about. In the docs for sonarscanner it says this, “Support upcoming SonarQube 10.4 API changes”. Any idea if SonarAnalyzer.CSharp 9.12 would mean it corresponds with the old SonarQube 9.x or does the SonarQube version not correlate with the SonarAnalyzer.CSharp NuGet version?
THe SonarAnalyzer.CSharp assembly is a set of Roslyn rules. You can also use them in your project without using SonarCube or SonarCloud (You than would not benefit from the wonderful stuff built by Sonar, like the reports on changed code, security issues, and other rules that are not implemented using Roslyn).
The .NET rule team publishes a new version every month. The major version is kept the same as the version of their other products, but there is - to my knowledge - no strong relation between the two. In other words, it would be no problem if the major version of SonarClube and the Roslyn analyzers are not the same.
This is mostly an accident when it happens. Typically the major version gets incremented after a new LTS release of SonarQube, but that’s not the only time (any breaking change, like supported version of Roslyn / Visual Studio, can trigger this as well.