dotnet — GitHub Copilot plugin: C# and .NET skills
C# and .NET skills plus a language server for .cs files. Useful when the agent edits C# code.
copilot plugin install dotnet@awesome-copilotWhat dotnet does
The plugin adds four skills: csharp-expert, csharp-refactoring, msbuild and setup-local-sdk. The first routes a .NET request to an installed specialist, the second handles C# source refactoring, the third covers build failures, build performance and MSBuild authoring, and the fourth sets up a local SDK.
A C# language server (LSP) is declared inside and launched through the .NET CLI. Hosts that support the lspServers extension will load it. Codex plugin installs expose the skills but skip that declaration. You need the .NET 10 SDK, and dotnet has to be on PATH — otherwise the LSP will not start.
msbuild acts as a router: it loads bundled references instead of activating the specialists from the dotnet-msbuild plugin. Framework upgrades, legacy-project conversion, package-format migration and C# source refactoring sit outside its scope. Both plugins can live side by side, and you will not have to run two workflows for one task.
What it helps with
- diagnose a failing MSBuild build
- speed up a .NET build
- review XML and imports in a project file
- refactor a C# source file
- set up a local .NET SDK
Example prompts for the agent
- Figure out why this solution fails to build
- Refactor this C# class
- Set up a local .NET SDK for the project
How to install dotnet
Command from the source
copilot plugin install dotnet@awesome-copilotStep by step, with commands for each platform: Claude Code plugins: marketplaces, installing, and building your own
Questions about dotnet
How do I install dotnet in GitHub Copilot?
Run copilot plugin install dotnet@awesome-copilot.
What does the dotnet plugin do?
It gives the agent C# and .NET skills and declares a C# language server for .cs files.
What does the language server need to run?
The .NET 10 SDK installed and dotnet on PATH. The plugin launches the server through the .NET CLI.
Source text
dotnet · MIT
# dotnet Core .NET and C# skills for coding agents. ## Includes - Common .NET development skills - A C# language server integration for `.cs` files ## LSP This plugin declares a C# LSP server that is launched through the .NET CLI. The LSP declaration is available to hosts that support the plugin `lspServers` extension. Codex plugin installs expose this plugin's skills but do not load that host-specific LSP declaration. Prerequisites: - .NET 10 SDK installed - `dotnet` available on PATH ## Skills - [csharp-expert](skills/csharp-expert/SKILL.md) - [csharp-refactoring](skills/csharp-refactoring/SKILL.md) - [msbuild](skills/msbuild/SKILL.md) — routed MSBuild diagnosis, performance, and authoring guidance - [setup-local-sdk](skills/setup-local-sdk/SKILL.md) ### MSBuild entry and specialist skills `msbuild` is the task-routed entry for build failures, build performance, and MSBuild authoring review. It loads bundled references rather than activating the specialist skills in the [dotnet-msbuild plugin](../dotnet-msbuild/README.md). The existing plugin's skills and agents remain supported, unchanged alternative entry points; installing both plugins does not require running both workflows for one task. Authoring review includes advisory XML, import, and packed-layout questions without a checkout or failed build, and preserves the current framework and project system. Framework upgrades, legacy-project conversion, package-format migration, and C# source refactoring are outside this entry's scope. The bundled references and specialist skills share MSBuild owners. Review shared-guidance updates against both surfaces and track applicable backports with their corresponding evals rather than maintaining independent guidance. This consolidation leaves specialist content unchanged; the bundled copy includes explicitly reviewed correctness fixes. Migrating or retiring the specialist plugin is a separate change. The [entry eval](../../tests/dotnet/msbuild/eval.yaml) covers the three task lanes and out-of-scope requests. The normal plugin arm loads only `dotnet`. The supplemental [coexistence experiment](../../msbuild-coexistence.experiment.yaml) also exposes all `dotnet-msbuild` skills in its plugin arm, using the same stimuli and outcomes without prescribing which overlapping skill must win selection. Point `EXPERIMENT_FILE` at that experiment when running `eng/run-skill-evals.sh dotnet msbuild`. Inspect its activation traces for duplicate workflows and out-of-scope activation; the isolated arm's dormancy contract alone does not prove cross-plugin routing. ### C# expert marketplace routing `csharp-expert` routes a .NET request to an installed specialist or identifies the smallest `dotnet/skills` marketplace plugin that supplies a missing specialist. Its normal eval covers solution detection, marketplace acquisition, fallback behavior, and dormancy. The supplemental [`csharp-expert-coexistence.experiment.yaml`](../../csharp-expert-coexistence.experiment.yaml) and [`csharp-expert-coexistence.claude.experiment.yaml`](../../csharp-expert-coexistence.claude.experiment.yaml) load representative marketplace specialists in the plugin arm for GPT- and Claude-family executors. Run either without a skill filter: ```bash EXPERIMENT_FILE=./csharp-expert-coexistence.experiment.yaml ./eng/run-skill-evals.sh EXPERIMENT_FILE=./csharp-expert-coexistence.claude.experiment.yaml ./eng/run-skill-evals.sh ``` Inspect the plugin-arm activation traces to confirm that installed specialists are invoked without installation advice. This is trace evidence rather than a shared output grader because the target-only arm may legitimately identify a missing specialist after completing a safe fallback.
© Microsoft · MIT · dotnet/skills