Provided by: dotnet-host-9.0_9.0.7-0ubuntu1~25.04.1_amd64 bug

dotnet tool install

       This article applies to: ✔️ .NET Core 3.1 SDK and later versions

NAME

       dotnet-tool-install - Installs the specified .NET tool on your machine.

SYNOPSIS

              dotnet tool install <PACKAGE_NAME> -g|--global
                  [--allow-downgrade] [-a|--arch <ARCHITECTURE>]
                  [--add-source <SOURCE>] [--configfile <FILE>] [--disable-parallel]
                  [--framework <FRAMEWORK>] [--ignore-failed-sources] [--interactive]
                  [--no-cache] [--prerelease]
                  [--tool-manifest <PATH>] [-v|--verbosity <LEVEL>]
                  [--version <VERSION_NUMBER>]

              dotnet tool install <PACKAGE_NAME> --tool-path <PATH>
                  [--allow-downgrade] [-a|--arch <ARCHITECTURE>]
                  [--add-source <SOURCE>] [--configfile <FILE>] [--disable-parallel]
                  [--framework <FRAMEWORK>] [--ignore-failed-sources] [--interactive]
                  [--no-cache] [--prerelease]
                  [--tool-manifest <PATH>] [-v|--verbosity <LEVEL>]
                  [--version <VERSION_NUMBER>]

              dotnet tool install <PACKAGE_NAME> [--local]
                  [--allow-downgrade] [-a|--arch <ARCHITECTURE>]
                  [--add-source <SOURCE>] [--configfile <FILE>]
                  [--create-manifest-if-needed] [--disable-parallel]
                  [--framework <FRAMEWORK>] [--ignore-failed-sources] [--interactive]
                  [--no-cache] [--prerelease]
                  [--tool-manifest <PATH>] [-v|--verbosity <LEVEL>]
                  [--version <VERSION_NUMBER>]

              dotnet tool install -h|--help

DESCRIPTION

       The dotnet tool install command provides a way for you to install .NET tools on your machine.  To use the
       command, you specify one of the following installation options:

       • To install a global tool in the default location, use the --global option.

       • To install a global tool in a custom location, use the --tool-path option.

       • To install a local tool, omit the --global and --tool-path options.

   Installation locations
   Global tools
       Global  tools  are  installed in the following directories by default when you specify the -g or --global
       option:

       OS            Path
       ──────────────────────────────────────────
       Linux/macOS   $HOME/.dotnet/tools
       Windows       %USERPROFILE%\.dotnet\tools

       Executables are generated in these folders for each globally installed tool, although the actual tool bi‐
       naries are nested deep into the sibling .store directory.

              On Linux after installing a command-line tool with dotnet tool, the tool can be executed only from
              the $HOME/.dotnet/tools path.  To make the tool executable from any directory, update the PATH en‐
              vironment variable.  To make the updated PATH environment variable permanent in your shell, update
              your shell settings.  For Bash, this is the $HOME/.bashrc file.

   --tool-path tools
       Tools with explicit tool paths are stored wherever you specified the --tool-path parameter to  point  to.
       They’re  stored  in the same way as global tools: an executable binary with the actual binaries in a sib‐
       ling .store directory.

   Local tools
       Local tools are stored in the NuGet global directory, whatever you’ve set that to  be.   There  are  shim
       files  in  $HOME/.dotnet/toolResolverCache  for  each local tool that point to where the tools are within
       that location.

       References to local tools are added to a dotnet-tools.json file in a .config directory under the  current
       directory.   If a manifest file doesn’t exist yet, create it by using the --create-manifest-if-needed op‐
       tion or by running the following command:

              dotnet new tool-manifest

       For more information, see Install a local tool.

ARGUMENTS

PACKAGE_NAME

         Name/ID of the NuGet package that contains the .NET tool to install.

OPTIONS

--allow-downgrade

         Allow package downgrade when installing or updating a .NET tool package.  Suppresses the warning,  “The
         requested version x.x.x is lower than existing version x.x.x.”

       • -a|--arch <ARCHITECTURE>

         Specifies  the  target  architecture.   This  is  a shorthand syntax for setting the Runtime Identifier
         (RID), where the provided value is combined with the default RID.  For example, on a  win-x64  machine,
         specifying --arch x86 sets the RID to win-x86.

       • --add-source <SOURCE>

         Adds  an  additional  NuGet package source to use during installation.  Feeds are accessed in parallel,
         not sequentially in some order of precedence.  If the same package and version is  in  multiple  feeds,
         the fastest feed wins.  For more information, see What happens when a NuGet package is installed?.

       • --configfile <FILE>

         The  NuGet  configuration  file  (nuget.config) to use.  If specified, only the settings from this file
         will be used.  If not specified, the hierarchy of configuration files from the current  directory  will
         be used.  For more information, see Common NuGet Configurations.

       • --create-manifest-if-needed

         Applies  to local tools.  Available starting with .NET 8 SDK.  To find a manifest, the search algorithm
         searches up the directory tree for dotnet-tools.json or  a  .config  folder  that  contains  a  dotnet-
         tools.json file.

         If  a tool-manifest can’t be found and the --create-manifest-if-needed option is set to false, the Can‐
         notFindAManifestFile error occurs.

         If a tool-manifest can’t be found and the --create-manifest-if-needed option is set to true,  the  tool
         creates a manifest automatically.  It chooses a folder for the manifest as follows:

         • Walk  up  the  directory  tree searching for a directory that has a .git subfolder.  If one is found,
           create the manifest in that directory.

         • If the previous step doesn’t find a directory, walk up the directory tree searching for  a  directory
           that has a .sln or .git file.  If one is found, create the manifest in that directory.

         • If  neither  of  the previous two steps finds a directory, create the manifest in the current working
           directory.

         For more information on how manifests are located, see Install a local tool.

       • --disable-parallel

         Prevent restoring multiple projects in parallel.

       • --framework <FRAMEWORK>

         Specifies the target framework to install the tool for.  By default, the .NET SDK tries to  choose  the
         most appropriate target framework.

       • -g|--global

         Specifies that the installation is user wide.  Can’t be combined with the --tool-path option.  Omitting
         both --global and --tool-path specifies a local tool installation.

       • -?|-h|--help

         Prints out a description of how to use the command.

       • --ignore-failed-sources

         Treat package source failures as warnings.

       • --interactive

         Allows the command to stop and wait for user input or action.  For example, to complete authentication.

       • --local

         Update the tool and the local tool manifest.  Can’t be combined with the --global option or the --tool-
         path option.

       • --no-cache

         Don’t cache packages and HTTP requests.

       • --prerelease

         Include prerelease packages.

       • --tool-manifest <PATH>

         Path to the manifest file.

       • --tool-path <PATH>

         Specifies  the  location  where to install the Global Tool.  PATH can be absolute or relative.  If PATH
         doesn’t exist, the command tries to create it.  Omitting both --global and --tool-path specifies a  lo‐
         cal tool installation.

       • -v|--verbosity <LEVEL>

         Sets  the verbosity level of the command.  Allowed values are q[uiet], m[inimal], n[ormal], d[etailed],
         and diag[nostic].  For more information, see <xref:Microsoft.Build.Framework.LoggerVerbosity>.

       • --version <VERSION_NUMBER>

         The version of the tool to install.  By default, the latest stable package version is  installed.   Use
         this option to install preview or older versions of the tool.

         Starting with .NET 8.0, --version Major.Minor.Patch refers to a specific major/minor/patch version, in‐
         cluding  unlisted  versions.   To  get the latest version of a certain major/minor version instead, use
         --version Major.Minor.*.

EXAMPLES

dotnet tool install -g dotnetsay

         Installs dotnetsay (https://www.nuget.org/packages/dotnetsay/) as a global tool in  the  default  loca‐
         tion.

       • dotnet tool install dotnetsay --tool-path c:\global-tools

         Installs  dotnetsay  (https://www.nuget.org/packages/dotnetsay/) as a global tool in a specific Windows
         directory.

       • dotnet tool install dotnetsay --tool-path ~/bin

         Installs dotnetsay (https://www.nuget.org/packages/dotnetsay/) as a global tool in a specific Linux/ma‐
         cOS directory.

       • dotnet tool install -g dotnetsay --version 2.0.0

         Installs version 2.0.0 of dotnetsay (https://www.nuget.org/packages/dotnetsay/) as a global tool.

       • dotnet tool install dotnetsay

         Installs dotnetsay (https://www.nuget.org/packages/dotnetsay/) as a local tool for the current directo‐
         ry.

       • dotnet tool install -g --verbosity minimal

         Installs dotnetsay (https://www.nuget.org/packages/dotnetsay/) as a global tool with the  verbosity  of
         minimal.  The default verbosity for global tool is quiet.

SEE ALSO

       • .NET tools

       • Tutorial: Install and use a .NET global tool using the .NET CLI

       • Tutorial: Install and use a .NET local tool using the .NET CLI

                                                   2024-10-02                             dotnet-tool-install(1)