Hi Antonio,
thanks for the effort! I can also confirm that the work around works.
Wish you the best
Peter
Hi Antonio,
thanks for the effort! I can also confirm that the work around works.
Wish you the best
Peter
Thanks @antonio.aversa! We will check if the workaround works for us.
Hi,
We have figured out why the Scanner keeps using ~/.local/share
.
The good news is that:
~/Library/Application Support
, which will keep working after the final .NET 8 release in November.So you won’t need to update the Scanner, to have the problem fixed permanently.
The scanner declares net5.0
as its target framework, with RollForward
set to LatestMajor
, to have it run with the most recent version of the .NET SDK installed.
However, the default behavior of the rolling mechanism is to not take into account preview versions of the .NET SDK.
Therefore, when a version of .NET < 8 Preview is installed (such as .NET 7) alongside .NET 8 preview, the scanner is run against that version, instead of .NET 8 Preview.
The behavior can be changed by using the DOTNET_ROLL_FORWARD_TO_PRERELEASE
environment variable.
After the release of .NET 8, the rollback mechanism will work normally, and the environment variable won’t be needed anymore. If left there, however, it should not do any harm, and it will help test preview releases of future versions of .NET.
The workaround is to set to 1
the DOTNET_ROLL_FORWARD_TO_PRERELEASE
environment variable, before running the scanner begin:
export DOTNET_ROLL_FORWARD_TO_PRERELEASE=1
To verify that the workaround is working correctly you can:
~/Library/Application Support/Microsoft/MSBuild/
, before running the scanner beginprintenv
to make sure the environment variable has been set correctly in your contextsonarscanner begin
with an additional parameter /d:sonar.verbose=true
and check whether the scanner is copying the target files into ~/Library/Application Support
instead of /.local/share
.~/Library/Application Support/Microsoft/MSBuild/*/Microsoft.Common.targets/ImportBefore
Let me know if the new workaround works for you.
Thanks,
Antonio
unfortunately the workaround does not work for us. We followed your steps and get this exception in the end step:
26-Oct-2023 14:08:42 SonarScanner for MSBuild 5.13.1
26-Oct-2023 14:08:42 Using the .NET Core version of the Scanner for MSBuild
26-Oct-2023 14:08:42 Post-processing started.
26-Oct-2023 14:08:42 14:08:42.473 14:08:42.473 WARNING: File '/Users/yygte69/Development/BambooAgents/APPME-Agent-P-3/xml-data/build-dir/MIEL-MMA432-AUTHENTICATIONTESTS/packages/microsoft.net.test.sdk/17.6.2/build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.cs' is not located under the base directory '/Users/yygte69/Development/BambooAgents/APPME-Agent-P-3/xml-data/build-dir/MIEL-MMA432-AUTHENTICATIONTESTS/src' and will not be analyzed.
26-Oct-2023 14:08:42 14:08:42.473 14:08:42.473 WARNING: File '/Users/yygte69/Development/BambooAgents/APPME-Agent-P-3/xml-data/build-dir/MIEL-MMA432-AUTHENTICATIONTESTS/packages/nunit3testadapter/4.4.2/build/netcoreapp3.1/NUnit3.TestAdapter.pdb' is not located under the base directory '/Users/yygte69/Development/BambooAgents/APPME-Agent-P-3/xml-data/build-dir/MIEL-MMA432-AUTHENTICATIONTESTS/src' and will not be analyzed.
26-Oct-2023 14:08:42 Calling the SonarScanner CLI...
26-Oct-2023 14:08:42 Unhandled exception. System.ComponentModel.Win32Exception (13): An error occurred trying to start process '/Users/Shared/Applications/sonar-scanner-msbuild-net5.0/sonar-scanner-4.8.1.3023/bin/sonar-scanner' with working directory '/Users/yygte69/Development/BambooAgents/APPME-Agent-P-3/xml-data/build-dir/MIEL-MMA432-AUTHENTICATIONTESTS'. Permission denied
26-Oct-2023 14:08:42 at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
26-Oct-2023 14:08:42 at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.Common.ProcessRunner.Execute(ProcessRunnerArguments runnerArgs)
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.Shim.SonarScannerWrapper.ExecuteJavaRunner(AnalysisConfig config, IEnumerable`1 userCmdLineArguments, ILogger logger, String exeFileName, String propertiesFileName, IProcessRunner runner)
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.Shim.SonarScannerWrapper.InternalExecute(AnalysisConfig config, IEnumerable`1 userCmdLineArguments, ILogger logger, String fullPropertiesFilePath)
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.Shim.SonarScannerWrapper.Execute(AnalysisConfig config, IEnumerable`1 userCmdLineArguments, String propertiesFilePath)
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.PostProcessor.PostProcessor.InvokeSonarScanner(IAnalysisPropertyProvider cmdLineArgs, AnalysisConfig config, String propertiesFilePath)
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.PostProcessor.PostProcessor.Execute(String[] args, AnalysisConfig config, IBuildSettings settings)
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.BootstrapperClass.PostProcess()
26-Oct-2023 14:08:42 INFO: exitcode: 134
26-Oct-2023 14:08:42
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.BootstrapperClass.Execute()
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.Program.Execute(String[] args, ILogger logger)
26-Oct-2023 14:08:42
26-Oct-2023 14:08:42 ------------------------------------------------------------------------------
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.Program.Execute(String[] args)
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.Program.Main(String[] args)
26-Oct-2023 14:08:42 at SonarScanner.MSBuild.Program.<Main>(String[] args)
The Win32Exception
in the end step seems related to access rights, which may be potentially unrelated to the previous issue.
Could you provide new logs (via private message), running begin and end step commands with /d:sonar.verbose=true
and the .NET build command with /v:d
?
The first thing to check is whether the analysis is now actually happening: after setting export DOTNET_ROLL_FORWARD_TO_PRERELEASE=1
, if you run the begin step with the additional parameter /d:sonar.verbose=true
, do you see from the logs that ~/Library/Application Support/Microsoft/MSBuild/
is being used, instead of ~/.local/share/Microsoft/MSBuild/
?
An alternative way is to check the .sonarsource/out
folder, under the project folder: after the .NET build command it should be populated with subfolders (e.g. 0
, ucfg_cs2
, etc.).
Thanks,
Antonio
Hi,
I checked both and the correct folder is used. I also can find the subfolders in .sonarsource/out.
I also executed it as sudo but still the same
EDIT: the infos above only apply for the begin command. I seems like the end step still wants to use the incorrect folder. (the env var is set)
Good news, the workaround works now for us too. We were able to fix the permission error with this:
We also updated the sonar scanner to 5.14.0.
@all Thanks for your efforts!
Hi @Christopher_Stephan,
That’s excellent news!
Thank you for providing logs and details about the issue.
Best regards,
Antonio
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.