📌 项目地址:dotnet/skills | ⭐ 2,284 颗星 | 🔧 C# | 📜 未标注
通用AI助手的硬伤:懂.NET但不够深
我试过好几个编码助手,问“ASP.NET Core依赖注入为什么报错”,它们能说出AddScoped或AddTransient的区别,但几乎没一个指出我用的容器是Autofac而不是默认的IServiceCollection。问“MSBuild构建失败”,它们会让我检查OutputPath,但不会告诉我具体是哪个.targets文件里的哪个条件没满足。
问题的核心不是模型不行,是它们缺少.NET生态的细粒度知识。它们知道DbContext怎么注册,但不知道AddDbContext默认生命周期是Scoped;知道MapControllerRoute怎么用,但不知道UseMvc在新版中已废弃。这些知识散落在MSDN博客、源码注释、社区问答里,模型训练数据覆盖不全。
dotnet/skills 就是来填这个坑的。它不是库,不发NuGet包,也不提供运行时。它是微软.NET团队维护的一套技能定义仓库,用agentskills.io开放标准写成的.skills.md指令文件。AI代理(Copilot CLI、Claude Code等)读了这些文件后,能照着步骤一步步处理构建、测试、性能、迁移等任务——不是猜,是照着官方的“菜谱”干活。
13个插件,每个都是针对痛点的
README列出了13个插件,每个对应一组技能。我按自己的开发场景做了梳理:不是所有插件你都得装,但下面这四类场景值得优先考虑。
做Web开发必须装:dotnet + dotnet-aspnetcore + dotnet-blazor + dotnet-test
dotnet插件是基础依赖,其他大部分插件都依赖它。dotnet-aspnetcore覆盖中间件、路由、API模式、实时通信,问“怎么让Blazor Server和Web API共享认证”这种跨界问题时,它能给出具体的配置代码。dotnet-test不只是跑测试,还能自动生成测试框架切换方案(比如从xUnit迁移到MSTest),过滤测试,分析覆盖率。dotnet-blazor处理组件编写、交互模式,比如“如何让Blazor组件支持流式渲染”这种新问题。
搞性能调试和构建问题:dotnet-msbuild + dotnet-diag
dotnet-msbuild是构建故障诊断利器。以前我排查MSB4018得一行行翻日志,现在直接问“为什么构建失败”,它指出来是哪个目标依赖缺失、哪个条件属性没设定。dotnet-diag适合性能分析、调试和事故排查。问“CPU100%是哪个线程在空转”,它能推荐合适的dotnet-counters或dotnet-trace参数。
迁移和升级:dotnet-upgrade + dotnet-nuget + dotnet-test-migration
跨版本迁移是个大坑,尤其从.NET Framework到.NET 5+。dotnet-upgrade覆盖框架版本、语言特性、兼容性目标。dotnet-nuget处理包管理和依赖升级。dotnet-test-migration专门处理测试框架迁移:xUnit到MSTest、VSTest到Microsoft.Testing.Platform。我有个旧项目还在用VSTest,问它迁移步骤,它直接给出了替换方案和注意事项。
其他专项:dotnet-data、dotnet-maui、dotnet-ai、dotnet-template-engine、dotnet11
这些按需安装。如果你不做MAUI,dotnet-maui就不用装。dotnet-ai覆盖LLM集成、RAG管道、ML.NET,适合在.NET里做AI应用的团队。dotnet11是给尝鲜用的,包含.NET 11的新API和语言特性。
安装方法(完全来自README)
Copilot CLI / Claude Code
在终端依次执行:
/plugin marketplace add dotnet/skills
/plugin install @dotnet-agent-skills
重启会话后,用/skills查看可用技能,/agents查看安装的代理。更新时执行/plugin update @dotnet-agent-skills。
VS Code / VS Code Insiders(预览功能)
[!IMPORTANT]
目前是预览功能,配置方法可能变化。需要在settings.json里开启:{ "chat.plugins.enabled": true, "chat.plugin...README里的配置示例没写完,实际字段名和值因版本而异。我订阅了仓库的Release通知,等正式版再补全步骤。
Dashboard:拿数据说话,比看Star数实在
我装了四个插件后的实际变化
我主力做ASP.NET Core + Blazor,先装了dotnet、dotnet-aspnetcore、dotnet-blazor、dotnet-test。以前问“Blazor组件参数绑定时为什么视图不更新”,AI助手可能建议用StateHasChanged但忽略Renderer生命周期。现在它能指出是[Parameter]的Set方法里没触发OnParametersSet,还是渲染树没重建。给出的代码片段基本可以直接粘贴,省去了翻文档和试错的时间。
如果你也做.NET,建议从“Web三件套”开始:dotnet + dotnet-aspnetcore + dotnet-blazor + dotnet-test。遇到构建或性能问题再补上dotnet-msbuild和dotnet-diag。
一句话总结
dotnet/skills把.NET团队的经验写成AI能读的说明书,让编码助手不再靠猜,而是照着官方手册一步步干活。仓库还在成长,但核心价值已经够打:质量有监控、更新有节奏、安装够简单。