A .NET tool is a special NuGet package that contains a console application. You can install a .NET tool as a global tool (using the --global argument) or as a local tool (using the --local argument).
However when I tried to install a specific tool locally, it failed with the following error message: “Cannot find a manifest file.”
dotnet tool install StrawberryShake.Tools --local
Cannot find a manifest file.
For a list of locations searched, specify the "-d" option before the tool name.
If you intended to install a global tool, add `--global` to the command.
If you would like to create a manifest, use `dotnet new tool-manifest`, usually in the repo root directory.
To install a tool for local access only, it has to be added to a tool manifest file. As I didn’t create such a file, I got the error message mentioned above.
To fix this, we first need to create a tool manifest file by running the dotnet new tool-manifest
command:
dotnet new tool-manifest
Getting ready...
The template "Dotnet local tool manifest file" was created successfully.
This command creates a manifest file named dotnet-tools.json under the .config directory.
Now we can retry the install command and this time it will succeed:
dotnet tool install StrawberryShake.Tools --local
You can invoke the tool from this directory using the following commands: 'dotnet tool run dotnet-graphql' or 'dotnet dotnet-graphql'.
Tool 'strawberryshake.tools' (version '12.0.1') was successfully installed. Entry is added to the manifest file C:\projects\IAMCore\.config\dotnet-tools.json.
If we take a look at the manifest file, we can see the following info:
More information: https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools