protected override Task OnExecute( ProgressMonitor monitor, ExecutionContext context, ConfigurationSelector configuration, SolutionItemRunConfiguration runConfiguration) { TargetFrameworkMoniker framework = Project.TargetFramework.Id; if (Project.HasMultipleTargetFrameworks) { var frameworkContext = context?.ExecutionTarget as AspNetCoreTargetFrameworkExecutionTarget; if (frameworkContext != null) { framework = frameworkContext.Framework; if (!(configuration is DotNetProjectFrameworkConfigurationSelector)) { configuration = new DotNetProjectFrameworkConfigurationSelector(configuration, frameworkContext.FrameworkShortName); } } } if (IsSupportedFramework(framework)) { return(OnExecute(monitor, context, configuration, framework, runConfiguration)); } return(base.OnExecute(monitor, context, configuration, runConfiguration)); }
Task <Dictionary <string, List <FrameworkReference> > > GetFrameworkReferencesAsync(CancellationTokenSource tokenSource) { var config = IdeApp.IsInitialized ? IdeApp.Workspace.ActiveConfiguration : ConfigurationSelector.Default; return(Task.Run(async() => { var referenceMappings = new Dictionary <string, List <FrameworkReference> > (); foreach (TargetFrameworkMoniker framework in Project.TargetFrameworkMonikers) { if (!CanGetFrameworkReferences(framework)) { continue; } var frameworkConfig = new DotNetProjectFrameworkConfigurationSelector(config, framework.ShortName); var references = await Project.GetFrameworkReferences(frameworkConfig, tokenSource.Token) .ConfigureAwait(false); if (!tokenSource.IsCancellationRequested) { string key = GetMappingKey(framework); referenceMappings [key] = references.ToList(); } } return referenceMappings; })); }