Files
Leonid PershinandCursor d8d042349a Close gaps in off-queue DX 49/54/55.
Pass -c through to dotnet run so Release stamp and process match, assert changelog order for more than one commit, and restore the last school tab from sessionStorage when opening from the menu.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 17:10:01 +03:00

2.1 KiB
Raw Permalink Blame History

Часть Вне очереди. Соседей по папке не читать, если задача не про них.

Пропуск сборки при запуске

Зачем

run-aspire.cmd каждый раз вызывает dotnet run, а тот — MSBuild графа Aspire, даже когда исходники не менялись. Повторный запуск после Ctrl+C стоит десятки секунд впустую: SDK пересчитывает хост, хотя dll на месте.

Было / Стало / Почему

Было. Скрипт всегда dotnet run --project src/HSchool.AppHost. Аргументы проходили насквозь.

Стало. Если HSchool.AppHost.dll и HSchool.Server.dll новее входов (C#, csproj, props, global.json), скрипт делает dotnet run --no-build. Иначе — dotnet build, потом --no-build. --rebuild собирает всегда. Конфигурация (-c / --configuration) выбирает, какие dll сравнивать и с какой конфигурацией звать dotnet run; по умолчанию Debug.

Почему. Инкрементальный MSBuild всё равно оценивает Aspire SDK. --no-build это пропускает. Клиентский TypeScript и JSONC модов не входы: Vite и каталог читают диск (ContentRoot), а не bin. Тестовые проекты AppHost не ссылается — их правки запуск не пересобирают.

Правила «устарел ли билд» живут в трёх местах: tools/apphost-uptodate.ps1 (Windows), needs_build в run-aspire.sh (Ubuntu) и LaunchBuildStamp (то, что проверяют тесты). Менять надо все три.

Что не входит

Голый dotnet run --project src/HSchool.AppHost по-прежнему собирает — так удобнее агентам с грязным деревом. Протокол, HTTP и сейв не трогаем.