diff options
author | Lluis Sanchez <lluis@xamarin.com> | 2020-01-22 18:49:55 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-22 18:49:55 +0300 |
commit | e773976bf9dc7026bb40a1e1201726df13f30063 (patch) | |
tree | d5c59a8300779f0ed0f719ee4f22a55954a890b1 /main | |
parent | 5fc926eb4f016ea31b51a405850a2c924260b0ed (diff) | |
parent | a993419042be2071180c5b36d08fdca8c4e48206 (diff) |
Merge pull request #9499 from mono/backport-pr-9498-to-release-8.4
[release-8.4] [AspNetCore] Enable support for launchSettings.json in Worker services
Diffstat (limited to 'main')
2 files changed, 27 insertions, 17 deletions
diff --git a/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs b/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs index c17e990a32..2cfa694241 100644 --- a/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs +++ b/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs @@ -92,7 +92,7 @@ namespace MonoDevelop.AspNetCore protected override bool SupportsObject (WorkspaceObject item) { - return DotNetCoreSupportsObject (item) && IsWebProject ((DotNetProject)item); + return DotNetCoreSupportsObject (item) && SupportsLaunchSettings ((DotNetProject)item); } protected override bool IsSupportedFramework (TargetFrameworkMoniker framework) @@ -178,24 +178,28 @@ namespace MonoDevelop.AspNetCore protected override IEnumerable<ExecutionTarget> OnGetExecutionTargets (OperationContext ctx, ConfigurationSelector configuration, SolutionItemRunConfiguration runConfig) { - var result = new List<ExecutionTarget> (); - foreach (var browser in IdeServices.DesktopService.GetApplications ("https://localhost", Ide.Desktop.DesktopApplicationRole.Viewer)) { - if (browser.IsDefault) { - if (Project.HasMultipleTargetFrameworks) { - result.InsertRange (0, GetMultipleTargetFrameworkExecutionTargets (browser)); + if (IsWeb) { + var result = new List<ExecutionTarget> (); + foreach (var browser in IdeServices.DesktopService.GetApplications ("https://localhost", Ide.Desktop.DesktopApplicationRole.Viewer)) { + if (browser.IsDefault) { + if (Project.HasMultipleTargetFrameworks) { + result.InsertRange (0, GetMultipleTargetFrameworkExecutionTargets (browser)); + } else { + result.Insert (0, new AspNetCoreExecutionTarget (browser)); + } } else { - result.Insert (0, new AspNetCoreExecutionTarget (browser)); - } - } else { - if (Project.HasMultipleTargetFrameworks) { - result.AddRange (GetMultipleTargetFrameworkExecutionTargets (browser)); - } else { - result.Add (new AspNetCoreExecutionTarget (browser)); + if (Project.HasMultipleTargetFrameworks) { + result.AddRange (GetMultipleTargetFrameworkExecutionTargets (browser)); + } else { + result.Add (new AspNetCoreExecutionTarget (browser)); + } } } - } - return result.Count > 0 ? result : base.OnGetExecutionTargets (configuration); + return result.Count > 0 ? result : base.OnGetExecutionTargets (configuration); + } else { + return base.OnGetExecutionTargets (configuration); + } } IEnumerable<ExecutionTarget> GetMultipleTargetFrameworkExecutionTargets (DesktopApplication browser) diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs index ced8a441c4..e62b73f956 100644 --- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs +++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore/DotNetCoreProjectExtension.cs @@ -75,7 +75,7 @@ namespace MonoDevelop.DotNetCore protected override bool SupportsObject (WorkspaceObject item) { - return DotNetCoreSupportsObject (item) && !IsWebProject ((DotNetProject)item); + return DotNetCoreSupportsObject (item) && !SupportsLaunchSettings ((DotNetProject)item); } protected bool DotNetCoreSupportsObject (WorkspaceObject item) @@ -404,7 +404,13 @@ namespace MonoDevelop.DotNetCore public bool HasSdk => Project.MSBuildProject.GetReferencedSDKs ().Length > 0; - protected bool IsWebProject (DotNetProject project) + protected static bool SupportsLaunchSettings (DotNetProject project) + { + return IsWebProject (project) || + project.MSBuildProject.GetReferencedSDKs ().FirstOrDefault (x => x.IndexOf ("Microsoft.NET.Sdk.Worker", StringComparison.OrdinalIgnoreCase) != -1) != null; + } + + protected static bool IsWebProject (DotNetProject project) { return (project.MSBuildProject.GetReferencedSDKs ().FirstOrDefault (x => x.IndexOf ("Microsoft.NET.Sdk.Web", StringComparison.OrdinalIgnoreCase) != -1) != null); } |