关于 dotnet
面向 C# 和 .NET 项目的通用路由技能,先识别仓库使用的框架、SDK 与测试工具,再将任务交给更具体的技能。也覆盖跨领域工作分流及按项目实际工作流验证变更。
主要功能
- 01识别项目技术栈
- 02路由到专用技能
- 03处理跨领域任务分流
- 04遵循实际测试与质量流程
- 05控制测试诊断输出
适用场景
- 01确定 .NET 任务适用技能
- 02为多框架仓库选择处理路径
- 03分流测试或代码质量工作
- 04按项目配置验证变更
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ managedcode/ dotnet-skills --skill dotnet安装后在 Claude Code 中输入/dotnet确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
manifest.jsonreferences/detection.mdrouting.md详细介绍
.NET 路由技能
触发条件
- 用户在未指定更具体的框架或工具时,询问一般性的
.NET问题 - 在包含多种应用模型或框架的代码仓库中实现、调试、审查或重构 C# 或
.NET代码 - 在编辑代码前,决定由哪个
.NET技能负责处理任务 - 将平台工作与测试、质量、架构、设置或迁移决策结合起来的任务
工作流
- 首先检测实际技术栈:
- 目标框架和 SDK 版本
LangVersion- 项目 SDK 和工作负载提示
- 托管模型和应用入口点
- 测试框架和运行器
- 分析器、格式化工具、覆盖率和 CI 质量门禁
- 确认技术栈后,立即转交给最具体的平台技能:
- Web:
aspnet-core、minimal-apis、web-api、blazor、signalr、grpc - 云和托管:
aspire、azure-functions、worker-services - 桌面和客户端:
maui、wpf、winforms、winui - 数据和分布式系统:
entity-framework-core、entity-framework6、orleans - AI 和 Agent:
semantic-kernel、microsoft-extensions-ai、microsoft-agent-framework、mlnet、mixed-reality,或参考使用 .NET 构建 AI Agent中的架构指导 - 旧版技术:
legacy-aspnet、wcf、workflow-foundation
- Web:
- 将跨领域工作转交给配套技能,而不是纳入一般性的
.NET建议:- 项目初始化或代码仓库结构:
project-setup、architecture - 混合
.NET和 Node 代码仓库中的前端资源分析:eslint、stylelint、htmlhint、webhint、biome、sonarjs、metalint、chous - 代码审查:
code-review - 语言功能:
modern-csharp - 测试:
tunit、xunit、mstest - 格式化、分析器、覆盖率和 CI:
format、code-analysis、quality-ci、coverlet、reportgenerator - 可维护性和架构规则:
complexity、netarchtest、archunitnet
- 项目初始化或代码仓库结构:
- 如果有多个专用技能适用,优先选择最贴近用户可见行为的技能,然后再调用质量或工具类技能。
- 一旦存在更具体的匹配技能,就不要停留在此技能上。此技能应负责分类和移交,而不是成为泛泛建议的堆放处。
- 修改代码后,应根据代码仓库实际采用的构建、测试和质量工作流进行验证,而不是使用通用的
.NET命令。
测试输出预算
- 保留原生运行器的进度输出并启用 ANSI(对于受支持的 MTP/TUnit 运行器,使用
--progress on --ansi on);在本地使用 PTY。不要将进度重绘内容重复写入模型上下文。使用检测到的运行器所支持的标志,不要对 VSTest 使用 MTP 开关。 - 显示警告、错误和一条最终摘要(数量、耗时、退出代码)。将测试自身的控制台日志配置为
Warning;不要将 Information/Debug/Trace、成功测试输出和预期的负向测试噪声写入上下文。单独降低构建详细程度并不能过滤应用日志。 - 发生失败、崩溃、启动错误或超时时,显示失败的测试/资源、根异常和相关堆栈帧。去重;每条诊断工具响应最多 80 行 / 8 KiB,以先达到者为准。绝不要自动输出 stdout/stderr、主机日志、浏览器控制台历史记录、DOM/HTML、TRX 或崩溃产物。
- 将必要的诊断信息保存在大小受限或轮换的产物中,并提供链接。按精确的失败信息/关联信息搜索;只读取有界摘录,绝不读取完整日志。工具传递输出前先捕获并过滤嘈杂内容,保留真实退出代码,并说明是否发生截断。监控实际活动;仅仅没有输出并不能证明进程已挂起。
当前上游说明
.NET 10.0.11运行时和 ASP.NET Core 发布版本属于维护更新。重新测试受影响的路径,例如 cgroup-v2 内存限制、Mono 原生库解析、Windows 目录枚举、WASM AOT/延迟加载启动、线程静态初始化、Blazor 持久化电路和 OpenAPI 生成,而不要默认更改架构。.NET SDK 10.0.400是当前的 10.0.4xx 功能带。它扩展了对基于文件的应用的支持,为dotnet test添加了 Microsoft.Testing.Platform 项目/解决方案选择功能,允许使用@作为dotnet new选项分隔符,并包含硬链接和增量构建修复。采用新的功能带前,确保global.json、工作负载和 CI 镜像保持一致。- 2026 年 8 月的“使用 .NET 构建应用”Learn 概览仍是涵盖 Web、云、桌面、移动、AI 和控制台工作负载的广泛路由背景;一旦明确应用模型,就转交给
project-setup、worker-services、aspnet-core、modern-csharp或其他专门技能。
路由启发式
- 如果仓库包含
Microsoft.NET.Sdk.Web,请从 Web 技能入手,而不是通用的.NET技能。 - 如果仓库包含 Blazor、Razor Components 或
.razor页面,优先选择blazor。 - 如果
.NET解决方案内包含package.json、前端 lint 配置或面向浏览器的资源管线,优先选择专门的前端分析技能,而不是通用的.NET技能。 - 如果仓库包含 Orleans grains 或 silo 托管,优先选择
orleans。 - 如果仓库主要涉及分析器、CI 或覆盖率工作,直接选择质量技能。
- 如果用户询问“我应该使用哪种技能?”,请用一句简短的话说明原因,并给出最匹配的专门技能。
- 如果没有更匹配的专门技能,就在此处继续处理,并明确说明缺少哪种专门化能力。
交付内容
- 为任务选择正确的专门技能
- 提供与仓库兼容、符合检测到的技术栈的代码或文档更改
- 提供符合实际项目运行器和质量工具链的验证依据
验证
- 确认所选的下游技能确实存在于目录中
- 确认平台假设与项目 SDK、程序包和工作负载相符
- 尽可能使用框架专属指导替代通用指导
- 不要错误混用特定运行器的命令
- 仅使用仓库支持的语言或运行时功能
文档
参考资料
- references/routing.md - 将任务路由到专门 .NET 技能的决策树,涵盖应用模型分类和跨领域问题处理。
- references/detection.md - 用于识别 SDK 类型、目标框架、工作负载、语言版本和应用模型的项目检测模式。
- 使用 .NET 构建 AI Agent - 面向生产级 .NET AI Agent 的架构和实现模式。
- .NET AI Agent 开发团队 - 生产级 .NET AI Agent 工程与交付服务。
评论
支持 Markdown