Add build and run scripts; drop the broken Avalonia.Diagnostics reference

A wrapper around `dotnet build` earns nothing, so build.ps1/build.sh are the
full local gate instead — tool restore, package restore, format check, build,
test — in the order that fails cheapest first, with a non-zero exit on failure.
run.ps1/run.sh default to Debug and pass extra arguments through to the app.
Both flavours ship because the Desktop head targets Windows, Linux and macOS.

Writing them immediately paid for itself: the very first run failed restore on
Avalonia.Diagnostics 12.1.1, which does not exist — the package stops at 11.3.x
because Avalonia 12 moved the inspector into a separate tool with its own
installation. The reference had survived because it sat behind
Condition="'$(Configuration)' == 'Debug'", and `dotnet restore` evaluates with
the default configuration while every build so far had passed -c Release. So
`dotnet build -c Release` worked and a bare `dotnet restore` did not.

Reference removed rather than replaced: AvaloniaUI.DiagnosticsSupport pulls in a
separately installed tool, which is not a dependency to add to a skeleton without
asking. README and CLAUDE.md no longer promise F12, and both traps are written
down where the next person will hit them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Leonid Pershin
2026-08-13 16:32:16 +03:00
co-authored by Claude Opus 5
parent 3db9d4dfc6
commit aeafe0af36
9 changed files with 306 additions and 16 deletions
+28 -10
View File
@@ -13,9 +13,31 @@ end-to-end до появления настоящей логики.
Нужен .NET SDK **10.0.100** (закреплён в `global.json`).
Полный локальный гейт — восстановление, проверка форматирования, сборка, тесты:
```bash
dotnet restore AvParser.slnx
./build.ps1
```
Запуск приложения (по умолчанию Debug):
```bash
./run.ps1
```
На Linux и macOS — `./build.sh` и `./run.sh`, аргументы те же.
Полезные флаги:
```bash
./build.ps1 -Fix -Configuration Debug
```
`-Fix` переформатирует код вместо того, чтобы падать на непрошедшей проверке; `-SkipTests`
собирает без прогона тестов. То же в bash: `--fix`, `-c Debug`, `--skip-tests`.
Если нужны отдельные шаги, скрипты ничего не прячут:
```bash
dotnet build AvParser.slnx -c Release
```
@@ -23,13 +45,7 @@ dotnet build AvParser.slnx -c Release
dotnet test AvParser.slnx -c Release
```
```bash
dotnet run --project src/AvParser.Desktop
```
Форматирование (csharpier — единственный владелец форматирования, включая `.axaml` и `.csproj`):
```bash
dotnet tool restore && dotnet csharpier check .
dotnet csharpier check .
```
---
@@ -117,7 +133,9 @@ Semi.Avalonia даёт темы контролов; токены — это се
2. Переключить тему кнопкой в заголовке и в Settings; перезапустить — выбор сохранился.
3. На странице Parse нажать **50k rows**, затем **Parse** — виден прогресс; **Cancel**
останавливает на середине и пишет, сколько успело разобраться.
4. `F12` в Debug-сборке открывает Avalonia DevTools — там видно, как переключаются
`:compact` / `:medium` / `:expanded`.
В Avalonia 12 инспектора «из коробки» больше нет: `Avalonia.Diagnostics` остановился на 11.3.x,
а DevTools вынесли в отдельный инструмент со своей установкой
(`AvaloniaUI.DiagnosticsSupport` + `.WithDeveloperTools()`). Поэтому `F12` здесь ничего не
открывает — зависимость намеренно не добавлена.
Настройки и логи лежат в `%APPDATA%/AvParser` (Windows) или `~/.config/AvParser` (Linux/macOS).