protected override Task OnExecute(
            ProgressMonitor monitor,
            ExecutionContext context,
            ConfigurationSelector configuration,
            TargetFrameworkMoniker framework,
            SolutionItemRunConfiguration runConfiguration)
        {
            var requiredVersion = DotNetCoreVersion.Parse(Project.TargetFramework.Id.Version);

            if (DotNetCoreRuntime.IsMissing)
            {
                return(ShowCannotExecuteDotNetCoreApplicationDialog(DotNetCoreRuntime.GetNotInstalledVersionMessage(requiredVersion.OriginalString), requiredVersion));
            }
            if (Project.TargetFramework.IsNetCoreApp() &&
                !DotNetCoreRuntime.Versions.Any(x => x.OriginalString.StartsWith(Project.TargetFramework.Id.Version, StringComparison.OrdinalIgnoreCase)))
            {
                return(ShowCannotExecuteDotNetCoreApplicationDialog(DotNetCoreRuntime.GetNotInstalledVersionMessage(requiredVersion.OriginalString), requiredVersion));
            }

            return(base.OnExecute(monitor, context, configuration, framework, runConfiguration));
        }