AIKraft/Skills/Точки расширения

Точки расширения

Guide for MSBuild extensibility: CustomBefore/CustomAfter hooks, wildcard imports with alphabetic ordering, import gating with control properties, NuGet package build extension layout (build/buildTransitive), and the MicrosoftCommonPropsHasBeenImported guard. USE FOR: diagnosing and fixing MSBuild import and hook patterns, reviewing and fixing extension point anti-patterns in Directory.Build files

dotnet official Разработка

Что делает навык

Навык предоставляет руководство по механизмам расширяемости MSBuild, позволяя внедрять пользовательскую логику через хуки и импорты. Он помогает диагностировать и исправлять паттерны использования CustomBefore/CustomAfter, wildcard-импортов и свойств контроля, а также структурировать расширения для NuGet-пакетов.

Когда применять

  • Диагностика и исправление антипаттернов в файлах Directory.Build.props и Directory.Build.targets
  • Настройка хуков CustomBefore и CustomAfter для внедрения кастомной логики сборки
  • Организация структуры расширения сборки в NuGet-пакетах с использованием папок build и buildTransitive
  • Использование свойства guard MicrosoftCommonPropsHasBeenImported для предотвращения повторных импортов

Как работает

  1. Определите необходимые хуки (CustomBefore/CustomAfter) в .targets файлах с использованием условных импортов
  2. Настройте wildcard-импорты с учетом алфавитной сортировки для автоматического подключения файлов
  3. Примените control properties для gating (контроля) импортов, чтобы управлять порядком и наличием логики
  4. Проверьте наличие свойства MicrosoftCommonPropsHasBeenImported для защиты от повторного импорта общих свойств
  5. Структурируйте файлы расширения в папках build и buildTransitive внутри NuGet-пакета

Примеры запросов агенту

Найди антипаттерны в импортах MSBuild в моих файлах Directory.Build.props
Как правильно настроить хуки CustomBeforeMicrosoftCommonTargets для моей сборки?
Проверь структуру расширения сборки в моем NuGet-пакете: папки build и buildTransitive

Описание составлено по SKILL.md навыка, сверено 05.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «extension-points» из репозитория: # https://github.com/dotnet/skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r extension-points/ ~/.claude/skills/extension-points/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.