@@ -14,10 +14,10 @@ namespace Microsoft.DotNet.Cli.Commands.Tool.Runx;
14
14
internal class ToolRunxCommand ( ParseResult result ) : CommandBase ( result )
15
15
{
16
16
private readonly string _toolCommandName = result . GetValue ( ToolRunxCommandParser . CommandNameArgument ) ;
17
+ private readonly IEnumerable < string > _toolArguments = result . GetValue ( ToolRunxCommandParser . CommandArgument ) ;
17
18
18
19
public override int Execute ( )
19
20
{
20
- PackageLocation packageLocation = new PackageLocation ( ) ;
21
21
PackageId packageId = new PackageId ( _toolCommandName ) ;
22
22
23
23
var tempDir = new DirectoryPath ( PathUtilities . CreateTempSubdirectory ( ) ) ;
@@ -28,17 +28,18 @@ public override int Execute()
28
28
ToolPackageDownloader toolPackageDownloader = new ToolPackageDownloader ( toolPackageStoreAndQuery ) ;
29
29
ToolPackageUninstaller toolPackageUninstaller = new ToolPackageUninstaller ( toolPackageStoreAndQuery ) ;
30
30
31
- IToolPackage toolPackage = toolPackageStoreAndQuery . EnumeratePackageVersions ( packageId ) . FirstOrDefault ( )
32
- ?? toolPackageDownloader . InstallPackage ( packageLocation , packageId ) ;
31
+ PackageLocation packageLocation = new PackageLocation ( rootConfigDirectory : toolPackageStoreAndQuery . Root ) ;
32
+
33
+ IToolPackage toolPackage = toolPackageDownloader . InstallPackage ( packageLocation , packageId , isGlobalTool : true ) ;
33
34
34
35
// Run package
35
36
36
- DotnetToolsCommandResolver dotnetToolsCommandResolver = new DotnetToolsCommandResolver ( toolPackageStoreAndQuery . Root . ToString ( ) ) ;
37
+ DotnetToolsCommandResolver dotnetToolsCommandResolver = new DotnetToolsCommandResolver ( toolPackage . PackageDirectory . Value ) ;
37
38
CommandSpec commandSpec = dotnetToolsCommandResolver . Resolve ( new CommandResolverArguments ( )
38
39
{
39
40
// since LocalToolsCommandResolver is a resolver, and all resolver input have dotnet-
40
- CommandName = $ "dotnet-{ _toolCommandName } ",
41
- CommandArguments = new string [ ] { } ,
41
+ CommandName = _toolCommandName . StartsWith ( "dotnet-" ) ? _toolCommandName : $ "dotnet-{ _toolCommandName } ",
42
+ CommandArguments = _toolArguments ,
42
43
} ) ;
43
44
44
45
var result = CommandFactoryUsingResolver . Create ( commandSpec ) . Execute ( ) ;
0 commit comments