private CommandSpec GetPackageCommandSpecUsingMuxer(CommandResolverArguments arguments, ToolCommandName toolCommandName) { if (!_toolManifest.TryFind(toolCommandName, out var toolManifestPackage)) { return(null); } if (_localToolsResolverCache.TryLoad( new RestoredCommandIdentifier( toolManifestPackage.PackageId, toolManifestPackage.Version, NuGetFramework.Parse(BundledTargetFramework.GetTargetFrameworkMoniker()), Constants.AnyRid, toolCommandName), _nugetGlobalPackagesFolder, out var restoredCommand)) { if (!_fileSystem.File.Exists(restoredCommand.Executable.Value)) { throw new GracefulException(string.Format(LocalizableStrings.NeedRunToolRestore, toolCommandName.ToString())); } return(MuxerCommandSpecMaker.CreatePackageCommandSpecUsingMuxer( restoredCommand.Executable.Value, arguments.CommandArguments)); } return(null); }
public CommandSpec Resolve(CommandResolverArguments arguments) { if (string.IsNullOrEmpty(arguments.CommandName)) { return(null); } var packageId = new DirectoryInfo(Path.Combine(_dotnetToolPath, arguments.CommandName)); if (!packageId.Exists) { return(null); } var version = packageId.GetDirectories()[0]; var dll = version.GetDirectories("tools")[0] .GetDirectories()[0] // TFM .GetDirectories()[0] // RID .GetFiles($"{arguments.CommandName}.dll")[0]; return(MuxerCommandSpecMaker.CreatePackageCommandSpecUsingMuxer( dll.FullName, arguments.CommandArguments)); }