Skip to content

dnx --help suggests use of a package that is not a .NET SDK Tool #51008

@baronfel

Description

@baronfel

Describe the bug

dnx --help provides the following help output:

dnx --help
Description:
  Executes a tool from source without permanently installing it.

Usage:
  dotnet dnx <packageId> [<commandArguments>...] [options]

Arguments:
  <packageId>         Package reference in the form of a package identifier like 'Newtonsoft.Json' or package identifier and version separated by '@' like
                      'Newtonsoft.Json@13.0.3'.
  <commandArguments>  Arguments forwarded to the tool

Options:
  --version <VERSION>       The version of the tool package to install.
  -y, --yes                 Accept all confirmation prompts using "yes." [default: False]
  --interactive             Allows the command to stop and wait for user input or action (for example to complete authentication). [default: True]
  --allow-roll-forward      Allow a .NET tool to roll forward to newer versions of the .NET runtime if the runtime it targets isn't installed. [default:
                            False]
  --prerelease              Include pre-release packages. [default: False]
  --configfile <FILE>       The NuGet configuration file to use.
  --source <SOURCE>         Replace all NuGet package sources to use during installation with these.
  --add-source <ADDSOURCE>  Add an additional NuGet package source to use during installation.
  --disable-parallel        Prevent restoring multiple projects in parallel. [default: False]
  --ignore-failed-sources   Treat package source failures as warnings. [default: False]
  --no-http-cache           Do not cache packages and http requests. [default: False]
  -v, --verbosity <LEVEL>   Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. [default:
                            normal]
  -?, -h, --help            Show command line help.

The packageId argument's help description calls out Newtonsoft.Json, but this package isn't a valid .NET Tool. We need to make the Description of the shared 'packageId argument structure accept different descriptions, and then provide a better description for the tool-related use cases (dnx, dotnet dnx, dotnet tool exec, dotnet tool install`, etc).

The tool-related examples should use dotnetsay@2.1.7.

This change should be done against the release/10.0.1xx branch.

To Reproduce

Install any 10 preview 7 and above. Run dnx --help.

Metadata

Metadata

Assignees

Labels

Area-CLIcli-uxIssues and PRs that deal with the UX of the CLI (exit codes, log output, verbs/options, and so on)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions