AIKraft/Skills/Инкрементальная сборка

Инкрементальная сборка

Guide for optimizing MSBuild incremental builds. USE FOR: builds slower than expected on subsequent runs, 'nothing changed but it rebuilds anyway', diagnosing why targets re-execute unnecessarily, fixing broken no-op builds. Covers 8 common causes: missing Inputs/Outputs on custom targets, volatile properties in output paths (timestamps/GUIDs), file writes outside tracked Outputs, missing FileWrit

dotnet official Другое

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

Направляет диагностику причин медленных или неинкрементальных сборок MSBuild, выявляя, почему targets перезапускаются без необходимости. Помогает исправить неработающие no-op сборки и оптимизировать кэширование зависимостей.

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

  • Сборка выполняется медленнее ожидаемого при последующих запусках
  • Ситуация 'ничего не менялось, но пересобирается заново'
  • Диагностика причин, почему targets перезапускаются без необходимости
  • Исправление неработающих no-op сборок из-за отсутствующих Inputs/Outputs или изменчивых свойств

Как работает

  1. Определить target и собрать точные доказательства корневой причины проблемы
  2. Провести сравнение временных меток фактических Inputs и Outputs
  3. Проверить наличие, удаление, очистку или перезапись файлов Outputs
  4. Выявить все Inputs, включая динамические или изменчивые (volatile)
  5. Оценить пути Inputs/Outputs и сопоставить их по принципу 'один к одному' при пакетной обработке (batching)
  6. Проверить два идентичных билда без изменений: второй должен пропускать выполнение (skip) или показывать статус out-of-date

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

Почему мой проект пересобирается заново, хотя я ничего не менял?
Диагностируй причину медленной инкрементальной сборки MSBuild
Объясни, почему target запускается без необходимости, и покажи сравнение временных меток

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

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

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

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