| name | dotnet-install |
| description | Build, install, list, and remove .NET tools using dotnet-install.
|
dotnet-install
Install .NET executables to PATH โ like cargo install
and go install. Build from source, install from NuGet,
or clone from GitHub.
Install sources
Each source requires an explicit flag. With no arguments,
dotnet-install in a directory with a project builds and
installs it (like dotnet publish). With nothing to act on,
it prints help.
dotnet-install
dotnet-install src/my-tool
dotnet-install --project src/my-tool
dotnet-install app.cs
dotnet-install --package dotnetsay
dotnet-install --package dotnet-counters@9.0.0
dotnet-install --github owner/repo
dotnet-install --github owner/repo --branch main
dotnet-install --github owner/repo --tag v2.0
dotnet-install --github owner/repo --rev abc123
dotnet-install --github owner/repo@v2.0
dotnet-install --github owner/repo --ssh
dotnet-install --git https://example.com/repo.git
dotnet-install --git https://example.com/repo.git --tag v1.0
--path is an alias for --project. When combined with
--github or --git, --project specifies a sub-path
within the cloned repository.
Git ref options
| Flag | Pinned | Example |
|---|
| (none) | no | default branch, tracks upstream |
--branch | no | named branch, tracks upstream |
--tag | yes | fixed tag, no updates |
--rev | yes | fixed commit SHA, no updates |
@ref | yes | shorthand in --github spec |
Pinned installs are skipped by dotnet-install update.
To change versions, uninstall and reinstall.
Subcommands
dotnet-install ls
dotnet-install rm <tool>
dotnet-install update [tool]
dotnet-install search <query>
dotnet-install info <tool>
dotnet-install outdated
dotnet-install run <pkg> [args]
dotnet-install doctor
dotnet-install env
dotnet-install completion <sh>
Install directory
Tools are installed to ~/.dotnet/bin/ by default.
Override with DOTNET_TOOL_BIN env var, -o <dir>,
or --local-bin (uses ~/.local/bin/).
PATH configuration
dotnet-install uses a dedicated env file (~/.dotnet/bin/env)
that is sourced from the shell's rc file. Run
dotnet-install doctor --fix to configure PATH automatically.
To activate in the current shell without restarting:
. "$HOME/.dotnet/bin/env"
source "$HOME/.dotnet/bin/env.fish"
Reliable behavior
- Git updates verify that the remote history is a
continuation of the local history. If a force push
is detected, the update is refused โ the user must
uninstall and reinstall the tool.
- Pinned installs (
--tag, --rev, @ref) are
immutable. update skips them and reports the
pinned ref. Changing versions requires an explicit
uninstall and reinstall.
- Building from source requires the .NET SDK;
--package works without the SDK.
- NuGet installs auto-enable roll-forward if the
tool targets an older runtime.
--require-sourcelink enforces SourceLink metadata
in installed assemblies.