I’m trying to evaluate SonarQube, but can’t get the scanner to run because dotnet errors if there is more than one .csproj in the working directory.
which versions are you using (SonarQube, Scanner, Plugin, and any relevant extension)
SonarQube:latest, dotnet 5.0.207, sonarscanner 5.4.1
what are you trying to achieve
Run SonarScanner SonarScanner for .NET | SonarQube Docs
what have you tried so far to achieve this
dotnet sonarscanner begin /k:"SonarQube-Test" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="[numbers]"
gives the following response:
Specify which project file to use because this '/Users/piersb/Development/AudioMob/unity-plugin' contains more than one project file.
Chasing it down, it looks like this is a problem with dotnet itself - invoke a dotnet tool with multiple *proj in same directory is not possibile · Issue #7226 · dotnet/sdk · GitHub whenever there’s more than one project file in a directory. Unfortunately this is a Unity project - and Unity insists on generating more than one .csproj file
I tried the workaround described in dotnet references GitHub - benmccallum/dotnet-references: A dotnet global tool for manipulating references in solution and project files
mkdir temp && cd temp && dotnet references fix -ep ../ -wd .. -rupf
but that bombs out with a long list of errors starting with
Could not find csproj file path for: 'Include="AudioMobScripts.csproj'. Exception: System.InvalidOperationException: Sequence contains no matching element at System.Linq.ThrowHelper.ThrowNoMatchException() at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate) at BenMcCallum.DotNet.References.Common.FindCsProjFilePath(String csProjFilePaths, String csProjFileName) in /home/runner/work/dotnet-references/dotnet-references/src/dotnet-references/Common.cs:line 41
Has anyone else encountered this problem? If so have you found a solution?