name: lint-dotnet description: 运行.NET架构检查器,检查MSBuild/CPM违规情况
/lint-dotnet
按需运行.NET架构检查器,检查违规情况。
执行方式
bash "${CLAUDE_PLUGIN_ROOT}/scripts/lint-dotnet.sh" .
输出格式
RULE_X|文件路径
行号: 违规详情
检查规则
| 规则 | 检查内容 | 修复方法 |
|---|---|---|
| RULE_A | Directory.Packages.props中的硬编码Version="1.2.3" |
使用$(变量名)并在Version.props中定义 |
| RULE_B | 在允许文件之外导入Version.props | 移除导入。仅允许DPP或eng/DBP导入。 |
| RULE_C | Version.props不是符号链接(在消费仓库中) | 重新创建符号链接,切勿复制文件 |
| RULE_G | .csproj中的<PackageReference Version="..."> |
移除Version属性,使用CPM |
允许导入Version.props的文件
| 文件 | 用途 |
|---|---|
Directory.Packages.props |
启用CPM的项目 |
eng/Directory.Build.props |
禁用CPM的项目 |
src/Sdk/*/Sdk.props |
SDK入口点(MSBuild自动导入这些文件) |
src/common/*.props |
共享SDK基础设施 |
其他文件导入Version.props = 违规。
通过检查的输出
CLEAN|所有规则检查通过
未发现违规。可安全继续。
变量命名规范
对于未知包,生成变量名:
Some.Package.Name->SomePackageNameVersion- 移除点和破折号,附加"Version"