---
url: /doc/guide/win7.md
---
> **为教室老机器而生** - 把系统底线降到 Windows 7 SP1

## 安装前提

| 项目 | 要求 |
| --- | --- |
| 操作系统 | Windows 7 **SP1** 及以上（.NET 6 在 Windows 7 上要求 SP1，这是硬门槛） |
| 架构 | x64 |
| .NET 运行时 | **无需单独安装**。应用为自包含发布 |
| WebView2 运行时 | 可选。仅「应用内网页浮层」需要；未安装时主要功能不受影响 |
| 磁盘空间 | 安装版默认装入 `%LOCALAPPDATA%\Programs\ClassSoftwareHub-Win7` |

安装程序在启动阶段执行两项检查：

1. **系统版本检查**：低于 Windows 7 SP1 时拒绝安装，并提示安装 SP1 或改用网页版，提供「打开网页版」按钮。
2. **WebView2 运行时检查**：未检测到时仅提示，不自动下载。原因是 Windows 7 上 WebView2 运行时止于 109.x，官方引导程序拉取的是更新版本、装了也无法使用；自动安装反而造成「装完了还是不行」的困惑。

## 运行环境

* **渲染**：Windows 7 上默认直接走软件渲染（帧缓冲在进程内存中），从根本上避免老显卡表面保帧不可靠导致的残影。代价是界面稍慢，但对「大部分时间静止」的界面开销可接受；WebView2 为独立进程渲染，不受影响。
* **视觉效果降级链**：Windows 7 无云母 / 亚克力 / 深色标题栏 / 窗口圆角，背景材质会自动分级降级到 Aero 毛玻璃或纯色。DWM 合成被关闭（经典 / 基本主题）时一律退回纯色底，不留透明。
* **图标字体**：Windows 7 无 Segoe MDL2 Assets / Segoe Fluent Icons，已改用内嵌字体，原有图标码位重映射，视觉与原版一致。
* **截屏**：Windows 7 无 `Windows.Graphics.Capture`，截屏改走 GDI `BitBlt`。

## 功能差异

Windows 7 兼容版与 WinUI 3 原版在功能上保持一致，差异集中在视觉与系统集成层面：

| 项目 | WinUI 3 原版 | Windows 7 兼容版 |
| --- | --- | --- |
| 系统底线 | Windows 10 1809 | Windows 7 SP1 |
| UI 框架 | WinUI 3 | Avalonia 11.2.8 + FluentAvaloniaUI 2.4.1 |
| 背景材质 | 云母 / 亚克力 | Aero 毛玻璃或纯色（按 DWM 合成状态降级） |
| 标题栏 | 可扩展客户区 + 深色标题栏 | 保留系统边框，更稳 |
| 图标字体 | Segoe MDL2 Assets | 内嵌字体 |
| 截屏 | `Windows.Graphics.Capture` | GDI `BitBlt` |
| WebView2 | 运行时版本不受限 | 运行时止于 109.0.1518.x，SDK 锁定 `1.0.1587.40` |
| 启动加速 | JIT | ReadyToRun 预编译（代价为体积约 +30%） |

## 已知限制

1. **WebView2 运行时上限**：Windows 7 上最高仅支持 109.0.1518.x，无法使用更新的 WebView2 特性。应用内网页浮层在运行时不可用时降级为「用浏览器打开」。
2. **C# 语言版本锁定为 10**：.NET 6 SDK 的上限。
3. **控件等价还原**：Avalonia 无 `VariableSizedWrapGrid`、`RelativePanel`、`ItemsRepeater`，需以等价控件还原，个别布局细节可能与原版存在可见差异。
4. **软件渲染下的性能**：动画密集场景帧率低于 GPU 渲染路径。
5. **3 个低置信度图标映射**：3 个 MDL2 码位可能渲染为空白或方块。

## 升级建议

| 场景 | 建议 |
| --- | --- |
| 教室机可升级至 Windows 10 1809 及以上 | 可改用 WinUI 3 原版桌面端，获得云母 / 亚克力等视觉效果与 GPU 渲染 |
| 教室机必须留在 Windows 7 | 继续使用本版本；保持 SP1 已安装，并注意 WebView2 运行时最高只能装 109.x |
| 无桌面端需求 | 直接使用网页端，功能一致，且不受系统版本限制 |
| 同机混用 | Windows 7 兼容版与 WinUI 3 原版安装目录与 AppId 不同，可同机共存，互不覆盖 |

## 与原版共存

两版是**同机可共存**的两个产品：

* **安装形状不同**：本版装的是「启动器 + `app\` 子目录」两层结构，以后换版本只覆盖 `app\` 即可，启动器和快捷方式永远有效。
* **安装标识不同**：安装程序依靠 AppId 认亲，两版使用不同的标识，不会把对方当成「自己的旧版本」。
* **目录不同**：默认装到 `...\Programs\ClassSoftwareHub-Win7`，避免在同机上与 WinUI 版抢文件。
* **更新隔离**：客户端的「检查更新」与「更新日志」只读本版本的仓库 Release，不会收到另一个版本的更新。
