SonarLint Error on Rider 2022.2: Analyzer assembly could not be loaded

Please provide

  • Operating system: macos Ventura ARM
  • SonarLint plugin version: 7.3.0.59206
  • Programming language you’re coding in: C#
  • Is connected mode used: N/A

And a thorough description of the problem / question:

Omnisharp: [ERROR] Failed to load assembly from path: /Users/david/Library/Caches/JetBrains/Rider2022.2/tmp/sonarlint/.sonarlinttmp_7077140747171068627/slServices/analyzers/SonarAnalyzer.CFG.dll
System.IO.FileLoadException: Assembly with same name is already loaded
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly)
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile)
   at OmniSharp.Services.AssemblyLoader.LoadFrom(String assemblyPath, Boolean dontLockAssemblyOnDisk) in /home/vsts/work/1/s/src/OmniSharp.Host/Services/AssemblyLoader.cs:line 79
Omnisharp: [ERROR] ************  Response (11.0199ms) ************ 
{
  "Request_seq": 3,
  "Command": "/sonarlint/codecheck",
  "Running": true,
  "Success": false,
  "Message": "\"System.InvalidOperationException: Analyzer assembly could not be loaded: /Users/david/Library/Caches/JetBrains/Rider2022.2/tmp/sonarlint/.sonarlinttmp_7077140747171068627/slServices/analyzers/SonarAnalyzer.CFG.dll\\n   at SonarLint.OmniSharp.DotNet.Services.DiagnosticWorker.SonarAnalyzerAssembliesProvider.LoadAssemblies()\\n   at SonarLint.OmniSharp.DotNet.Services.DiagnosticWorker.SonarAnalyzerAssembliesProvider.get_Assemblies()\\n   at SonarLint.OmniSharp.DotNet.Services.DiagnosticWorker.SonarAnalyzerCodeActionProvider..ctor(ISonarAnalyzerAssembliesProvider sonarAnalyzerAssembliesProvider)\\n   at lambda_method234(Closure , LifetimeContext , CompositionOperation )\\n   at System.Composition.Hosting.Core.LifetimeContext.GetOrCreate(Int32 sharingId, CompositionOperation operation, CompositeActivator creator)\\n   at System.Composition.TypedParts.ActivationFeatures.LifetimeFeature.<>c__DisplayClass1_0.<RewriteActivator>b__0(LifetimeContext c, CompositionOperation o)\\n   at lambda_method236(Closure , LifetimeContext , CompositionOperation )\\n   at System.Composition.Hosting.Core.LifetimeContext.GetOrCreate(Int32 sharingId, CompositionOperation operation, CompositeActivator creator)\\n   at System.Composition.TypedParts.ActivationFeatures.LifetimeFeature.<>c__DisplayClass1_0.<RewriteActivator>b__0(LifetimeContext c, CompositionOperation o)\\n   at lambda_method237(Closure , LifetimeContext , CompositionOperation )\\n   at System.Composition.TypedParts.ActivationFeatures.DisposalFeature.<>c__DisplayClass0_0.<RewriteActivator>b__0(LifetimeContext c, CompositionOperation o)\\n   at System.Composition.Hosting.Core.LifetimeContext.GetOrCreate(Int32 sharingId, CompositionOperation operation, CompositeActivator creator)\\n   at System.Composition.TypedParts.ActivationFeatures.LifetimeFeature.<>c__DisplayClass1_0.<RewriteActivator>b__0(LifetimeContext c, CompositionOperation o)\\n   at lambda_method241(Closure , LifetimeContext , CompositionOperation )\\n   at System.Composition.Hosting.Core.CompositionOperation.Run(LifetimeContext outermostLifetimeContext, CompositeActivator compositionRootActivator)\\n   at System.Composition.Hosting.Providers.Lazy.LazyWithMetadataExportDescriptorProvider.<>c__DisplayClass2_3`2.<GetLazyDefinitions>b__4()\\n   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)\\n   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)\\n   at System.Lazy`1.CreateValue()\\n   at System.Lazy`1.get_Value()\\n   at OmniSharp.Endpoint.EndpointHandler`2.<>c.<LoadExportHandlers>b__11_0(Lazy`2 export) in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 80\\n   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()\\n   at System.Linq.Enumerable.ConcatIterator`1.MoveNext()\\n   at System.Linq.Lookup`2.Create(IEnumerable`1 source, Func`2 keySelector, IEqualityComparer`1 comparer)\\n   at System.Linq.GroupedEnumerable`2.GetEnumerator()\\n   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)\\n   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)\\n   at OmniSharp.Endpoint.EndpointHandler`2.LoadExportHandlers(IEnumerable`1 handlers) in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 79\\n   at OmniSharp.Endpoint.EndpointHandler`2.<>c__DisplayClass10_0.<.ctor>b__0() in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 74\\n   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)\\n   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)\\n   at System.Lazy`1.CreateValue()\\n   at System.Lazy`1.get_Value()\\n   at OmniSharp.Endpoint.EndpointHandler`2.HandleRequestForLanguage(String language, TRequest request, RequestPacket packet) in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 222\\n   at OmniSharp.Endpoint.EndpointHandler`2.Process(RequestPacket packet, LanguageModel model, JToken requestObject) in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 131\\n   at OmniSharp.Stdio.Host.HandleRequest(String json, ILogger logger) in /home/vsts/work/1/s/src/OmniSharp.Stdio/Host.cs:line 218\"",
  "Body": null,
  "Seq": 2572,
  "Type": "response"
}
"System.InvalidOperationException: Analyzer assembly could not be loaded: /Users/david/Library/Caches/JetBrains/Rider2022.2/tmp/sonarlint/.sonarlinttmp_7077140747171068627/slServices/analyzers/SonarAnalyzer.CFG.dll\n   at SonarLint.OmniSharp.DotNet.Services.DiagnosticWorker.SonarAnalyzerAssembliesProvider.LoadAssemblies()\n   at SonarLint.OmniSharp.DotNet.Services.DiagnosticWorker.SonarAnalyzerAssembliesProvider.get_Assemblies()\n   at SonarLint.OmniSharp.DotNet.Services.DiagnosticWorker.SonarAnalyzerCodeActionProvider..ctor(ISonarAnalyzerAssembliesProvider sonarAnalyzerAssembliesProvider)\n   at lambda_method234(Closure , LifetimeContext , CompositionOperation )\n   at System.Composition.Hosting.Core.LifetimeContext.GetOrCreate(Int32 sharingId, CompositionOperation operation, CompositeActivator creator)\n   at System.Composition.TypedParts.ActivationFeatures.LifetimeFeature.<>c__DisplayClass1_0.<RewriteActivator>b__0(LifetimeContext c, CompositionOperation o)\n   at lambda_method236(Closure , LifetimeContext , CompositionOperation )\n   at System.Composition.Hosting.Core.LifetimeContext.GetOrCreate(Int32 sharingId, CompositionOperation operation, CompositeActivator creator)\n   at System.Composition.TypedParts.ActivationFeatures.LifetimeFeature.<>c__DisplayClass1_0.<RewriteActivator>b__0(LifetimeContext c, CompositionOperation o)\n   at lambda_method237(Closure , LifetimeContext , CompositionOperation )\n   at System.Composition.TypedParts.ActivationFeatures.DisposalFeature.<>c__DisplayClass0_0.<RewriteActivator>b__0(LifetimeContext c, CompositionOperation o)\n   at System.Composition.Hosting.Core.LifetimeContext.GetOrCreate(Int32 sharingId, CompositionOperation operation, CompositeActivator creator)\n   at System.Composition.TypedParts.ActivationFeatures.LifetimeFeature.<>c__DisplayClass1_0.<RewriteActivator>b__0(LifetimeContext c, CompositionOperation o)\n   at lambda_method241(Closure , LifetimeContext , CompositionOperation )\n   at System.Composition.Hosting.Core.CompositionOperation.Run(LifetimeContext outermostLifetimeContext, CompositeActivator compositionRootActivator)\n   at System.Composition.Hosting.Providers.Lazy.LazyWithMetadataExportDescriptorProvider.<>c__DisplayClass2_3`2.<GetLazyDefinitions>b__4()\n   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)\n   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)\n   at System.Lazy`1.CreateValue()\n   at System.Lazy`1.get_Value()\n   at OmniSharp.Endpoint.EndpointHandler`2.<>c.<LoadExportHandlers>b__11_0(Lazy`2 export) in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 80\n   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()\n   at System.Linq.Enumerable.ConcatIterator`1.MoveNext()\n   at System.Linq.Lookup`2.Create(IEnumerable`1 source, Func`2 keySelector, IEqualityComparer`1 comparer)\n   at System.Linq.GroupedEnumerable`2.GetEnumerator()\n   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)\n   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)\n   at OmniSharp.Endpoint.EndpointHandler`2.LoadExportHandlers(IEnumerable`1 handlers) in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 79\n   at OmniSharp.Endpoint.EndpointHandler`2.<>c__DisplayClass10_0.<.ctor>b__0() in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 74\n   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)\n   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)\n   at System.Lazy`1.CreateValue()\n   at System.Lazy`1.get_Value()\n   at OmniSharp.Endpoint.EndpointHandler`2.HandleRequestForLanguage(String language, TRequest request, RequestPacket packet) in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 222\n   at OmniSharp.Endpoint.EndpointHandler`2.Process(RequestPacket packet, LanguageModel model, JToken requestObject) in /home/vsts/work/1/s/src/OmniSharp.Host/Endpoint/EndpointHandler.cs:line 131\n   at OmniSharp.Stdio.Host.HandleRequest(String json, ILogger logger) in /home/vsts/work/1/s/src/OmniSharp.Stdio/Host.cs:line 218"

Hi @David_Berroa

Assembly with same name is already loaded

Seems like our analyzer dll is loaded multiple times.

By chance, do you have manually configured the use of SonarAnalyzer.CFG.dll in your solution or projects? Could be by referencing it as a nuget package, or by having a <Analyzer Include="path\to\SonarAnalyzer.CFG.dll"> in one of your .csproj?

Can you look at the full OmniShap logs and search for SonarAnalyzer.CFG.dll to see if you can find how it was previously loaded?