摘要:当 AI 编程助手遍地开花,.NET 开发者却长期面临一个尴尬——这些工具"懂通用编程,不懂 .NET"。微软 .NET 团队在 GitHub 上线了 dotnet/skills 仓库,打包了 12 个专业技能插件(含 80+ 条细分技能),覆盖从构建系统到移动开发的全栈场景。本文基于仓库源码逐条核实,深度拆解这个项目的真实能力、架构与使用方式。


一、背景:AI 编程工具的"最后一公里"问题

2026 年,AI 编程工具已经从"代码补全"进化到"Agent 自主编程"。Cursor、GitHub Copilot、Claude Code、Gemini CLI、JetBrains Junie……几乎每个主流 IDE 和终端都有了自己的 AI Agent。

但一个被低估的问题浮出水面:通用大模型在 .NET 生态中的表现并不理想

你让它写个 ASP.NET Core 中间件,它可能给你生成过时的 IApplicationBuilder 写法;让它排查 NuGet 依赖冲突,它可能对着 packages.config 一通操作——而你的项目早就用 PackageReference 了;让它帮你从 .NET 8 升级到 .NET 10,它可能遗漏了大量 breaking change。

这不是模型"笨",而是 .NET 生态的复杂度远超通用训练数据的覆盖范围:

  • MSBuild 系统有自己的属性、Target、条件逻辑,和 Makefile 完全不同
  • Entity Framework Core 的迁移、Provider 切换、性能调优是独立的知识体系
  • .NET MAUI 跨平台适配涉及大量平台特定 API
  • C# 语言本身在快速迭代(C# 15 已经引入联合类型)

微软 .NET 团队显然意识到了这个问题。于是,dotnet/skills 来了。


二、项目概览:12 个插件,80+ 条细分技能

dotnet/skills(GitHub 地址:github.com/dotnet/skills)是微软 .NET 团队维护的一套结构化技能集合,遵循 agentskills.io 开放标准。

核心理念:不是让 AI 模型重新学习 .NET,而是通过技能插件在运行时注入精准的领域知识,让 AI Agent 在处理 .NET 任务时变得"专业"。

仓库实际包含 12 个稳定插件(另有 dotnet-experimental 用于实验性技能),以下是基于仓库源码逐条核实的真实技能清单

dotnet(核心 .NET 编码)— 3 条技能

技能名 说明
csharp-scripts C# 脚本相关
dotnet-pinvoke P/Invoke 平台调用
nuget-trusted-publishing NuGet 可信发布

dotnet-aspnet(ASP.NET Core Web 开发)— 3 条技能

技能名 说明
configuring-opentelemetry-dotnet OpenTelemetry 配置
dotnet-webapi Web API 开发模式
minimal-api-file-upload Minimal API 文件上传

dotnet-data(数据访问)— 1 条技能

技能名 说明
optimizing-ef-core-queries EF Core 查询优化

dotnet-diag(诊断调试)— 7 条技能

技能名 说明
analyzing-dotnet-performance .NET 性能分析
android-tombstone-symbolication Android tombstone 符号化
apple-crash-symbolication Apple 崩溃日志符号化
clr-activation-debugging CLR 激活调试
dotnet-trace-collect dotnet-trace 采集
dump-collect dump 文件采集
microbenchmarking 微基准测试

dotnet-msbuild(构建系统)— 18 条技能

这是目前内容最丰富的插件,覆盖了 MSBuild 的方方面面:

技能名 说明
binlog-failure-analysis 二进制日志失败分析
binlog-generation 二进制日志生成
build-parallelism 构建并行度优化
build-perf-baseline 构建性能基线
build-perf-diagnostics 构建性能诊断
check-bin-obj-clash bin/obj 目录冲突检查
directory-build-organization Directory.Build 组织
eval-performance 评估性能
extension-points MSBuild 扩展点
including-generated-files 包含生成文件
incremental-build 增量构建
item-management MSBuild 项管理
msbuild-antipatterns MSBuild 反模式
msbuild-modernization MSBuild 现代化
msbuild-server MSBuild Server
property-patterns 属性模式
resolve-project-references 项目引用解析
target-authoring Target 编写

dotnet-nuget(包管理)— 1 条技能

技能名 说明
convert-to-cpm 迁移到 Central Package Management

dotnet-upgrade(版本升级)— 6 条技能

技能名 说明
dotnet-aot-compat AOT 兼容性检查
migrate-dotnet8-to-dotnet9 .NET 8 → 9 迁移
migrate-dotnet9-to-dotnet10 .NET 9 → 10 迁移
migrate-dotnet10-to-dotnet11 .NET 10 → 11 迁移
migrate-nullable-references nullable 引用迁移
thread-abort-migration Thread.Abort 迁移

注意:覆盖 .NET 8→9→10→11 的逐版本迁移路径,以及 AOT 兼容性和 nullable 引用迁移等专项。不包含 .NET 6/7 的直接升级路径。

dotnet-maui(移动/桌面)— 8 条技能

技能名 说明
dotnet-maui-doctor MAUI 环境诊断
maui-app-lifecycle 应用生命周期
maui-collectionview CollectionView 控件
maui-data-binding 数据绑定
maui-dependency-injection 依赖注入
maui-safe-area 安全区域适配
maui-shell-navigation Shell 导航
maui-theming 主题系统

dotnet-ai(AI/ML)— 5 条技能

技能名 说明
mcp-csharp-create 创建 MCP Server(C#)
mcp-csharp-debug 调试 MCP Server
mcp-csharp-publish 发布 MCP Server
mcp-csharp-test 测试 MCP Server
technology-selection AI 技术选型

说明:该插件目前聚焦于在 C# 中构建 MCP(Model Context Protocol)Server 的完整工作流,以及 AI 技术栈选型指导。暂不包含 RAG 管道或 ML.NET 相关技能。

dotnet-template-engine(模板引擎)— 4 条技能

技能名 说明
template-authoring 模板编写
template-discovery 模板发现
template-instantiation 模板实例化
template-validation 模板验证

dotnet-test(测试)— 22 条技能

这是技能数量最多的插件:

技能名 说明
assertion-quality 断言质量
code-testing-agent 代码测试 Agent
code-testing-extensions 测试扩展
coverage-analysis 覆盖率分析
crap-score CRAP 指标
detect-static-dependencies 静态依赖检测
dotnet-test-frameworks 测试框架选型
filter-syntax 测试过滤语法
generate-testability-wrappers 可测试性包装器生成
migrate-mstest-v1v2-to-v3 MSTest v1/v2 → v3 迁移
migrate-mstest-v3-to-v4 MSTest v3 → v4 迁移
migrate-static-to-wrapper 静态依赖迁移到包装器
migrate-vstest-to-mtp vstest → MTP 迁移
migrate-xunit-to-xunit-v3 xUnit → xUnit v3 迁移
mtp-hot-reload MTP 热重载
platform-detection 平台检测
run-tests 测试运行
test-anti-patterns 测试反模式
test-gap-analysis 测试缺口分析
test-smell-detection 测试坏味道检测
test-tagging 测试标签
writing-mstest-tests 编写 MSTest 测试

dotnet11(.NET 11 新特性)— 1 条技能

技能名 说明
system-text-json-net11 .NET 11 中 System.Text.Json 新特性

说明:该插件目前仅包含 System.Text.Json 在 .NET 11 中的新增功能。C# 15 联合类型、Runtime Async、Zstd 压缩等 .NET 11 特性虽已随 Preview 3 发布,但尚未有对应的 Skill 文件,预期后续会持续补充。

技能分布总览

dotnet-test        ████████████████████████  22 条
dotnet-msbuild     ████████████████████  18 条
dotnet-maui        █████████  8 条
dotnet-diag        ████████  7 条
dotnet-upgrade     ███████  6 条
dotnet-ai          ██████  5 条
dotnet-template    █████  4 条
dotnet             ████  3 条
dotnet-aspnet      ████  3 条
dotnet-data        ██  1 条
dotnet-nuget       ██  1 条
dotnet11           ██  1 条

三、技术架构:Agent Skills 开放标准解析

这个项目不只是"一堆 Markdown 文件"。它遵循的是 Agent Skills 开放标准agentskills.io/specification),这是一个正在被主流 AI 编程工具广泛采纳的规范。

3.1 仓库结构

根据 CONTRIBUTING.md,每个插件的标准目录结构为:

plugins/
  <plugin>/
    plugin.json          # 插件元数据(必须)
    skills/
      <skill-name>/
        SKILL.md          # 技能指令文档(核心)
        scripts/          # 辅助脚本
        references/       # 参考资料
        assets/           # 资源文件
    agents/
      <agent-name>.agent.md  # Agent 配置
tests/
  <plugin>/
    <skill-name>/
      eval.yaml           # 评估用例
      <fixture files>

每个插件需要在三个市场清单文件中注册:.github/plugin/marketplace.json.claude-plugin/marketplace.json.cursor-plugin/marketplace.json,确保跨工具一致性。

3.2 什么是 Agent Skills?

简单说,Agent Skills 是一种结构化的知识注入机制

一个 Skill = 描述(何时激活) + 指令(如何执行) + 工具(用什么能力) + 输出(交付什么)

与传统的"把所有知识塞进 system prompt"不同,Skills 采用渐进式加载——AI Agent 根据当前任务的语义,自动匹配并加载最相关的技能。这意味着:

  • 不会浪费 token 在无关知识上
  • 技能可以独立更新和版本管理
  • 同一个 Agent 可以叠加多个技能

3.3 多工具兼容

这是 dotnet/skills 最值得关注的设计决策之一。它不绑定任何一个 AI 编程工具,而是同时支持:

  • GitHub Copilot(VS Code / VS Code Insiders)— 通过 /plugin marketplace add dotnet/skills 安装
  • Claude Code — 同样的 plugin marketplace 机制
  • Cursor — 作为 Cursor 插件市场的一部分
  • OpenAI Codex CLI — 通过 skill-installer 命令行工具
  • JetBrains Junie、Gemini CLI、OpenHands、Goose 等 — 遵循同一标准

这意味着你在 Cursor 里安装的 .NET 技能,和同事在 VS Code Copilot 里用的是同一套。团队协作的摩擦被大幅降低。


四、实战场景:最值得关注的三个插件

4.1 dotnet-upgrade:逐版本迁移的标准化路径

该插件提供 .NET 8→9→10→11 的逐版本迁移技能,以及 AOT 兼容性检查和 nullable 引用迁移等专项能力。每个迁移技能针对特定版本的 breaking change 提供精准指导。

边界说明:不支持从 .NET 6/7 直接跳到 .NET 10/11。如果你的项目还在 .NET 6,需要按 8→9→10→11 逐步迁移。

4.2 dotnet-msbuild:构建系统的"百科全书"

18 条技能覆盖了 MSBuild 从基础到高级的方方面面——binlog 分析、增量构建、并行度优化、反模式检测、现代化改造。这是目前仓库中内容最扎实的插件,适合任何需要深入理解和优化 .NET 构建流程的团队。

4.3 dotnet-ai:在 C# 中构建 MCP Server 的完整指南

该插件聚焦于一个前沿场景:用 C# 构建 MCP(Model Context Protocol)Server。MCP 是 2025-2026 年 AI 工具链中最热门的协议之一,用于让 AI Agent 调用外部工具和数据源。插件覆盖了从创建、调试、测试到发布的完整工作流,外加 AI 技术栈选型指导。

边界说明:暂不包含 RAG 管道、ML.NET、Semantic Kernel 等更广泛的 AI/ML 场景技能。


五、安装指南(三分钟上手)

VS Code / VS Code Insiders(Preview)

⚠️ 注意:VS Code 插件支持目前为预览功能,可能需要手动启用。

// settings.json
{
  "chat.plugins.enabled": true,
  "chat.plugins.marketplaces": ["dotnet/skills"]
}

配置完成后,在 Copilot Chat 中输入 /plugins,或在扩展中使用 @agentPlugins 筛选器浏览和安装插件。

Cursor

Cursor 用户更简单——直接在 Cursor 市场面板搜索 .NET,或访问 cursor.com/marketplace 安装。

本地开发或未发布版本的导入方式:

# 将本地仓库复制或软链接到 Cursor 插件目录
cp -r /path/to/dotnet-skills ~/.cursor/plugins/local/dotnet-agent-skills
# 重启 Cursor 或执行 Developer: Reload Window

Claude Code / Copilot CLI

# 添加市场
/plugin marketplace add dotnet/skills

# 安装技能
/plugin install dotnet-aspnet@dotnet-agent-skills
/plugin install dotnet-diag@dotnet-agent-skills

# 重启后查看可用技能
/skills

# 更新技能
/plugin update <plugin>@dotnet-agent-skills

Codex CLI

Skills 遵循 agentskills.io 开放标准,与 OpenAI Codex 兼容。使用 skill-installer CLI 安装:

skill-installer install https://github.com/dotnet/skills/tree/main/plugins/<plugin>/skills/<skill-name>

六、与 .NET 11 的协同:AI + 最新框架

dotnet/skills 项目中包含了一个 dotnet11 插件,目前已有 system-text-json-net11 技能覆盖 .NET 11 中 System.Text.Json 的新特性。

配合 2026 年 4 月 15 日发布的 .NET 11 Preview 3,.NET 11 本身带来了大量值得关注的特性:

  • C# 15 联合类型(union types)— Preview 3 引入,支持模式匹配
  • Runtime Async — Preview 3 移除了预览功能标志要求,不再需要手动设置 EnablePreviewFeatures
  • Zstandard 响应压缩 — Preview 1 在库层面引入,Preview 3 集成到 System.IO.Compression 并在 ASP.NET Core 层提供响应压缩/请求解压支持
  • Blazor Virtualize 自适应高度 — 不再假设每项等高,运行时自适应测量
  • EF Core GetEntriesForState API — 无需先执行 DetectChanges 即可返回指定状态的已跟踪实体

这些特性目前尚未全部有对应的 Skill 文件,但 dotnet11 插件的定位就是覆盖 .NET 11 新特性,预期会持续补充。

补充说明:.NET 11 是 STS(Standard Term Support,标准期限支持) 版本,计划于 2026 年 11 月正式发布。当前的 LTS 版本是 2025 年 11 月发布的 .NET 10。


七、生态意义:.NET 的"技能即服务"范式

从更宏观的视角看,dotnet/skills 代表了一种趋势:框架团队直接为 AI Agent 提供专业知识

过去,AI 编程工具对框架的理解完全依赖训练数据的质量。现在,框架维护者可以主动"教会" AI Agent 如何正确使用自己的框架。这是一种根本性的范式转移:

  • 从被动到主动:不再是等 AI 模型慢慢学到 .NET 最佳实践,而是微软直接注入
  • 从通用到专业:一个技能库解决一个领域的所有细分问题
  • 从封闭到开放:任何人都可以基于 agentskills.io 标准贡献技能

截至目前,Agent Skills 标准已经获得了 Cursor、GitHub Copilot、Gemini CLI、JetBrains Junie、OpenHands、Goose、Amp、Letta、Firebender 等十余个主流 AI 编程工具的支持。dotnet/skills 作为微软官方的参考实现,很可能成为 .NET 生态中 AI 辅助开发的基础设施。


八、总结

维度 评价
实用性 ⭐⭐⭐⭐⭐ 直接解决 .NET 开发中的 AI 痛点
覆盖面 ⭐⭐⭐⭐ 12 个插件 + 80+ 条技能,部分插件仍在建设中
兼容性 ⭐⭐⭐⭐⭐ 支持所有主流 AI 编程工具
时效性 ⭐⭐⭐⭐⭐ 跟随 .NET 11 Preview 实时更新
上手难度 ⭐⭐ 三分钟安装,零学习成本

如果你是 .NET 开发者,又在用 AI 编程工具——不管你是用 Cursor、Copilot 还是 Claude Code——dotnet/skills 都值得你花三分钟装上。

它不会让你变成更好的程序员,但会让你的 AI 助手变成更好的 .NET 开发者。


项目地址:https://github.com/dotnet/skills
标准文档:https://agentskills.io

Google 官方出手了!Chrome DevTools MCP 让 AI Agent 直接操控浏览器,前端调试迎来范式革命

CodeGraph 深度评测:给 AI 编程助手装上「代码大脑」,成本直降 ~35%

CLI-Anything 深度拆解:一行命令,让任意软件成为 AI Agent 的原生工具

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐