mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-24 10:34:26 +08:00
Migrate to Avalonia 12 and Plugin SDK v5
Upgrade project to the Avalonia 12 baseline and Plugin SDK v5: centralize Avalonia packages, remove legacy WebView.Avalonia usage (use NativeWebView/WebView2 EnvironmentRequested), and update Fluent/Material icon/package usages. Bump multiple package/project versions to 5.0.0 and Avalonia 12.0.1, update plugin template and README/docs to SDK v5, and add PLUGIN_SDK_V5_MIGRATION.md. Also fix runtime/behavior bugs: make DataLocationResolver use a fixed bootstrap launcher data path and avoid recursive ResolveDataRoot; add legacy-state handling and extraction in OobeStateService; and update component settings tests to reflect migrated storage (DB/backup) and reset cache for test reloads. Various csproj, tests, and docs updated to reflect the migration and ensure build/test compatibility.
This commit is contained in:
@@ -1,39 +1,18 @@
|
||||
# Tasks
|
||||
|
||||
- [ ] Task 1: 修复窗口装饰 API(Phase 1)
|
||||
- [x] SubTask 1.1: 重写 `SettingsWindow.ApplyChromeMode()` 移除 `ExtendClientAreaChromeHints`
|
||||
- [x] SubTask 1.2: 重写 `ComponentEditorWindow.ApplyChromeMode()` 移除 `ExtendClientAreaChromeHints`
|
||||
- [x] SubTask 1.3: 批量替换所有 `.axaml` 中的 `SystemDecorations` → `WindowDecorations`
|
||||
- [ ] SubTask 1.4: 验证构建错误减少
|
||||
|
||||
- [ ] Task 2: 修复 MainWindow 编译错误(Phase 2)
|
||||
- [ ] SubTask 2.1: 修复 `MainWindow.ComponentSystem.cs` 中 `centerLeft` 和 `positions` 未定义错误
|
||||
- [ ] SubTask 2.2: 修复 `MainWindow.DesktopPaging.cs` 中 `child` 和 `_isThreeFingerOrRightDragSwipeActive` 未定义错误
|
||||
- [ ] SubTask 2.3: 验证构建错误减少
|
||||
|
||||
- [ ] Task 3: 修复 Avalonia 12 API 变更(Phase 3)
|
||||
- [ ] SubTask 3.1: 移除 `App.axaml.cs` 中 `BindingPlugins.DataValidators` 代码
|
||||
- [ ] SubTask 3.2: 替换 `DesktopComponentFailureView.cs` 中 `IClipboard.SetTextAsync` 为 `ClipboardExtensions.SetTextAsync`
|
||||
- [ ] SubTask 3.3: 更新 `MonetColorService.cs` 中 `Bitmap.CopyPixels` 调用签名
|
||||
- [ ] SubTask 3.4: 验证构建错误减少
|
||||
|
||||
- [ ] Task 4: 修复第三方库变更(Phase 4)
|
||||
- [ ] SubTask 4.1: 替换 `SettingsWindow.axaml.cs` 中 `FluentIcons.Avalonia.SymbolIconSource` 为 `FluentIcon`
|
||||
- [ ] SubTask 4.2: 验证构建错误减少
|
||||
|
||||
- [ ] Task 5: 清理过时属性(Phase 5)
|
||||
- [ ] SubTask 5.1: 批量替换 `.cs` 文件中 `Watermark` → `PlaceholderText`
|
||||
- [ ] SubTask 5.2: 批量替换 `.axaml` 文件中 `Watermark` → `PlaceholderText`
|
||||
- [ ] SubTask 5.3: 验证无过时警告
|
||||
|
||||
- [ ] Task 6: 最终验证
|
||||
- [ ] SubTask 6.1: `dotnet build LanMountainDesktop.slnx -c Debug` 0 errors
|
||||
- [ ] SubTask 6.2: `dotnet test LanMountainDesktop.slnx -c Debug` 通过
|
||||
|
||||
# Task Dependencies
|
||||
|
||||
- Task 2 不依赖 Task 1(可并行)
|
||||
- Task 3 不依赖 Task 1/2(可并行)
|
||||
- Task 4 不依赖 Task 1/2/3(可并行)
|
||||
- Task 5 依赖 Task 1/2/3/4(低优先级,最后执行)
|
||||
- Task 6 依赖所有前置任务
|
||||
- [x] Centralize Avalonia 12 package versions in `Directory.Packages.props`.
|
||||
- [x] Move the host, Launcher, Plugin SDK, DesktopHost, Shared.Contracts, and Avalonia-facing projects onto central package versions.
|
||||
- [x] Replace third-party `WebView.Avalonia` usage with official `NativeWebView`.
|
||||
- [x] Configure WebView2 user data through `EnvironmentRequested`.
|
||||
- [x] Move FluentAvalonia usages to the FA3 control names and package baseline.
|
||||
- [x] Move FluentIcons usage to `FluentIcons.Avalonia` and remove the old `.Fluent` package.
|
||||
- [x] Update Plugin SDK package version and API baseline to `5.0.0`.
|
||||
- [x] Update plugin runtime shared assembly policy for Avalonia 12 / FluentAvalonia / FluentIcons / Material.
|
||||
- [x] Fix Avalonia 12 compile breaks in window chrome, binding plugin access, clipboard, bitmap copy, and icon source usage.
|
||||
- [x] Fix Launcher data location recursion by using a fixed bootstrap config path.
|
||||
- [x] Fix OOBE state tests and legacy marker compatibility.
|
||||
- [x] Update PluginTemplate defaults to SDK v5.
|
||||
- [x] Add SDK v5 migration documentation.
|
||||
- [x] Update current docs from SDK v4 / Avalonia 11 examples to SDK v5 / Avalonia 12.
|
||||
- [x] Run full solution tests and record any remaining non-upgrade failures.
|
||||
- [ ] Perform Windows manual smoke test for host, Launcher, settings, component editor, BrowserWidget, and WebView2 missing-runtime handling.
|
||||
|
||||
Reference in New Issue
Block a user