Thanks for the repro. And here's what I have found:
If you run an analysis with the latest C# plugin then the analysis doesn't fail. Based on the CA... error that you get, I'm assuming that you have the SonarQube FxCop plugin, or you're using an older SonarQube C# plugin, which was embedding the FxCop analysis. So I ran FxCop inside Visual Studio (Analyze/Run Code Analysis/On Solution) and I did get the same issue you're experiencing. With a bit more detail:
<Exception Keyword="CA0001" Kind="AssemblyLoad">
<Type>Microsoft.FxCop.Common.AssemblyLoadException</Type>
<ExceptionMessage>Could not find type 'UnityEngine.UI.Selectable' in assembly 'UnityEditor.UI, Version=1.0.0.0, Culture=neutral'.</ExceptionMessage>
<StackTrace> at Microsoft.FxCop.Engines.Phoenix.LoadAndResolutionHandler.HandleFailureToFindTypeDefinitionByName(ModuleUnit unit, UInt32 typeRefToken, String name)
at Phx.Metadata.LoaderImplementation.GetTypeReferenceSymbol(UInt32 typeReferenceToken)
at Phx.Metadata.LoaderImplementation.GetTypeReferenceSymbol(UInt32 typeReferenceToken)
at Phx.Metadata.LoaderImplementation.GetSymbolByToken(UInt32 token)
at Phx.Metadata.LoaderImplementation.GetTypeFromSignature(Byte*& signature, TypeSymbol typeSpecificationSymbol, AggregateType variableAggregateType, FunctionSymbol variableFunctionSymbol)
at Phx.Metadata.LoaderImplementation.MakeFunctionType(Byte*& signature, TypeSymbol typeSymbol, AggregateType aggregateType, FunctionSymbol functionSymbol, UInt32 functionToken)
at Phx.Metadata.LoaderImplementation.GetMethodDefinitionSymbol(UInt32 methodDefinitionToken)
at Phx.Metadata.MetadataLoader.LoadTypeDefinitionMembers(TypeSymbol symbol)
at Phx.Metadata.MetadataLoader.LoadMembers(Type type)
at Microsoft.FxCop.Engines.Phoenix.AssemblyLoader.ProcessLoadingMembers(AggregateType type, RingModelExtension extension, MetadataLoader metadataLoader)
at Microsoft.FxCop.Engines.Phoenix.AssemblyLoader.ProcessWorklist(MetadataLoader metadataLoader, Boolean ignoreErrors)
at Microsoft.FxCop.Engines.Phoenix.AssemblyLoader.LoadAssembly(String filePath)
at Microsoft.FxCop.Engines.Phoenix.PhoenixAnalysisEngine.AnalyzeInternal()
at Microsoft.FxCop.Engines.Phoenix.PhoenixAnalysisEngine.Analyze()
at Microsoft.FxCop.Common.EngineManager.Analyze(Project project, Boolean verboseOutput)</StackTrace>
</Exception>
But this didn't lead me to any solutions. If you check the parameters of the FxCopCmd.exe that is being executed, everything seems fine (all assemblies are there, and there are no duplicate ones).
This issue seems like a bug in FxCop. I can't suggest any good solutions, but to disable FxCop rules and see if you can pinpoint the one that causes the issue.