# Dependencies for Running dotnet/skills: Complete Prerequisites Guide

> Discover the essential dependencies for running dotnet/skills. Learn about .NET SDK 11, GitHub CLI auth, and NuGet restoration needed for this repository.

- Repository: [.NET Platform/skills](https://github.com/dotnet/skills)
- Tags: getting-started
- Published: 2026-07-08

---

**The dotnet/skills repository requires .NET SDK 11 (preview), GitHub CLI authentication, and NuGet package restoration to build and execute the skill validator and plugin collection.**

The dotnet/skills codebase is a collection of .NET plugins and a custom skill-validator written entirely in C#. Understanding the dependencies for running dotnet/skills is essential before compiling the projects or executing the validator against specific plugins.

## Core Prerequisites for dotnet/skills

### .NET SDK Version Requirements

According to the source code, all projects target the SDK version defined in [`global.json`](https://github.com/dotnet/skills/blob/main/global.json). This file pins the required .NET SDK to version `11.0.100-preview.3` or later. The SDK provides the `dotnet` CLI, build tools, and runtime necessary to compile and execute the plugins and validator.

### GitHub CLI Authentication

The [`CONTRIBUTING.md`](https://github.com/dotnet/skills/blob/main/CONTRIBUTING.md) file specifies that users must install the **GitHub CLI (`gh`)** and authenticate using `gh auth login`. This authentication is required because CI workflows may pull private artifacts or authenticate against the GitHub API during test execution.

## Build and Runtime Dependencies

### NuGet Package Restoration

Each plugin’s `.csproj` files declare specific package dependencies such as `Microsoft.EntityFrameworkCore`, `MSTest`, and `coverlet.collector`. These are automatically restored when running `dotnet restore`. For example, the `dotnet-upgrade` test project located at `tests/dotnet-upgrade/migrate-nullable-references/fixtures/nrt-enabled/NrtEnabled.csproj` references these packages.

### The Skill Validator Executable

The **dotnet-run-validator** is a .NET console application located under `eng/skill-validator/src`. It serves as the entry point for validating skills and is built using `dotnet build` and executed with `dotnet run`. The project file `eng/skill-validator/src/SkillValidator.csproj` defines the executable’s dependencies.

## Optional and Plugin-Specific Dependencies

Some plugins require additional tooling beyond the core SDK. The individual plugin READMEs under `plugins/` document these requirements:

- **Docker** for container-related tests
- **Entity Framework tooling** for database migrations
- **dotnet watch** for hot-reload scenarios

For example, the `dotnet-msbuild` plugin README specifies any extra MSBuild-related prerequisites.

## Step-by-Step Setup Workflow

1. Verify the .NET SDK version matches the [`global.json`](https://github.com/dotnet/skills/blob/main/global.json) constraint:

```bash
dotnet --list-sdks   # verify 11.0.100-preview.3+ is present

```

2. Install and authenticate the GitHub CLI:

```bash
gh auth login

```

3. Restore NuGet packages and build the skill-validator:

```bash
dotnet restore eng/skill-validator/src/SkillValidator.csproj
dotnet build eng/skill-validator/src/SkillValidator.csproj

```

4. Run the validator against a specific plugin:

```bash
dotnet run --project eng/skill-validator/src/SkillValidator.csproj \
    -- evaluate --tests-dir tests/dotnet-msbuild plugins/dotnet-msbuild/skills/common-build-errors

```

## Summary

- **.NET SDK 11 (preview)** is required as specified in [`global.json`](https://github.com/dotnet/skills/blob/main/global.json)
- **GitHub CLI** must be installed and authenticated via `gh auth login`
- **NuGet packages** are restored automatically via `dotnet restore` based on individual `.csproj` files
- The **skill-validator** executable is located at `eng/skill-validator/src/SkillValidator.csproj`
- Optional dependencies like Docker or EF Core are documented in individual plugin READMEs under `plugins/`

## Frequently Asked Questions

### What version of the .NET SDK do I need for dotnet/skills?

The repository requires .NET SDK version `11.0.100-preview.3` or later, as pinned in the [`global.json`](https://github.com/dotnet/skills/blob/main/global.json) file. This preview SDK provides the necessary runtime and build tools for the C# projects.

### Is GitHub CLI required just to build the code?

Yes, according to the [`CONTRIBUTING.md`](https://github.com/dotnet/skills/blob/main/CONTRIBUTING.md) documentation, `gh auth login` is required because the CI workflow and some tests may need to authenticate against the GitHub API or pull private artifacts.

### Where is the skill validator located and how do I run it?

The skill validator is a console application located at `eng/skill-validator/src/SkillValidator.csproj`. You build and run it using standard `dotnet` commands: `dotnet build` followed by `dotnet run --project eng/skill-validator/src/SkillValidator.csproj`.

### Do I need Docker or Entity Framework tools for all plugins?

No, these are optional dependencies required only by specific plugins. Each plugin’s README under the `plugins/` directory documents any additional tooling requirements such as Docker for container tests or EF Core tooling for database migrations.