From 92a34b34b2b11a75d7af4ab5af280a82aba29196 Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Wed, 20 Aug 2025 15:23:37 -0500 Subject: [PATCH] detect .NET 10 RID-specific tools and provide a more actionable error --- .../ToolConfigurationDeserializer.cs | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/Cli/dotnet/ToolPackage/ToolConfigurationDeserializer.cs b/src/Cli/dotnet/ToolPackage/ToolConfigurationDeserializer.cs index 6f6b0274a4ac..acf397e6b5ed 100644 --- a/src/Cli/dotnet/ToolPackage/ToolConfigurationDeserializer.cs +++ b/src/Cli/dotnet/ToolPackage/ToolConfigurationDeserializer.cs @@ -52,15 +52,24 @@ public static ToolConfiguration Deserialize(string pathToXml) throw new ToolConfigurationException(CommonLocalizableStrings.ToolSettingsMoreThanOneCommand); } - if (dotNetCliTool.Commands[0].Runner != "dotnet") + // if there is no runner, this could be an entirely different _kind_ of tool. + if (string.IsNullOrWhiteSpace(dotNetCliTool.Commands[0].Runner)) { - throw new ToolConfigurationException( - string.Format( - CommonLocalizableStrings.ToolSettingsUnsupportedRunner, - dotNetCliTool.Commands[0].Name, - dotNetCliTool.Commands[0].Runner)); + if (warnings.Count != 0) + { + throw new ToolConfigurationException(warnings[0]); + } } + if (dotNetCliTool.Commands[0].Runner != "dotnet") + { + throw new ToolConfigurationException( + string.Format( + CommonLocalizableStrings.ToolSettingsUnsupportedRunner, + dotNetCliTool.Commands[0].Name, + dotNetCliTool.Commands[0].Runner)); + } + return new ToolConfiguration( dotNetCliTool.Commands[0].Name, dotNetCliTool.Commands[0].EntryPoint,