Точки расширения
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
Что делает навык
Навык предоставляет руководство по механизмам расширяемости MSBuild, позволяя внедрять пользовательскую логику через хуки и импорты. Он помогает диагностировать и исправлять паттерны использования CustomBefore/CustomAfter, wildcard-импортов и свойств контроля, а также структурировать расширения для NuGet-пакетов.
Когда применять
- Диагностика и исправление антипаттернов в файлах Directory.Build.props и Directory.Build.targets
- Настройка хуков CustomBefore и CustomAfter для внедрения кастомной логики сборки
- Организация структуры расширения сборки в NuGet-пакетах с использованием папок build и buildTransitive
- Использование свойства guard MicrosoftCommonPropsHasBeenImported для предотвращения повторных импортов
Как работает
- Определите необходимые хуки (CustomBefore/CustomAfter) в .targets файлах с использованием условных импортов
- Настройте wildcard-импорты с учетом алфавитной сортировки для автоматического подключения файлов
- Примените control properties для gating (контроля) импортов, чтобы управлять порядком и наличием логики
- Проверьте наличие свойства MicrosoftCommonPropsHasBeenImported для защиты от повторного импорта общих свойств
- Структурируйте файлы расширения в папках build и buildTransitive внутри NuGet-пакета
Примеры запросов агенту
Описание составлено по SKILL.md навыка, сверено 05.10.2026.
Как подключить
SKILL.md к навыкам ассистентаНавык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.