dotnet-tool-management

Manage .NET CLI tool installation, updates, and restoration for global and local scopes.

71|10|Updated Feb 11, 2026
One-click install
npx skills add https://github.com/wshaddix/dotnet-skills --skill dotnet-tool-management-wshaddix
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dotnet-tool-management
Source: https://github.com/wshaddix/dotnet-skills/tree/main/skills/dotnet-tool-management
Command: npx skills add https://github.com/wshaddix/dotnet-skills --skill dotnet-tool-management-wshaddix

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

This Skill simplifies the process of installing, updating, and managing .NET CLI tools, ensuring consistent development environments across teams and projects.

Core Features & Use Cases

  • Global Tool Management: Install, update, and uninstall tools available system-wide.
  • Local Tool Management: Manage tools scoped to specific projects using manifest files (.config/dotnet-tools.json).
  • Reproducible Builds: Ensure consistent tool versions in CI/CD pipelines via dotnet tool restore.
  • Use Case: A development team needs to use dotnet-ef for database migrations. This Skill helps them install it locally for their project, commit the manifest, and ensure all team members and the CI server use the exact same version.

Quick Start

Install the 'dotnet-ef' tool locally for the current project.

Frequently Asked Questions about dotnet-tool-management

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I manage .NET CLI tools consistently across a development team?

Managing .NET CLI tools consistently across a team involves using local tool manifest files. You create a `.config/dotnet-tools.json` file, install tools locally, and commit the manifest so all team members get the exact same tool versions.

How do I restore dotnet tools in a CI/CD pipeline?

To restore dotnet tools in a CI/CD pipeline, you run `dotnet tool restore` against a committed manifest file. This ensures the automated build environment installs the exact pinned tool versions required for reproducible builds.

What is the difference between global and local .NET CLI tools?

Global .NET CLI tools are installed system-wide and available from any directory, while local tools are scoped to a specific project using a manifest file. Local tools ensure project-specific version consistency, whereas global tools offer convenience across projects.

How do I pin a specific version of a dotnet tool for my project?

To pin a specific version of a dotnet tool, you install it locally within your project scope. This updates the project's manifest file with the exact version number, preventing unintended upgrades and ensuring reproducible builds.

Can I use dotnet tool restore without a manifest file?

Using `dotnet tool restore` requires a local tool manifest file to exist. If the `.config/dotnet-tools.json` manifest is missing, the restore command cannot determine which tools or versions to install for the environment.

Why do I need a dotnet-tools.json file for local tool management?

A `dotnet-tools.json` file is needed for local tool management because it acts as a manifest recording all project-scoped tools and their pinned versions. This guarantees that every team member and CI server uses identical tool versions.