# 解决方案:统一版本与打包分发 ## 现状分析 - **版本不一致**:`Hua.Todo.Maui` 的版本号为 `1.2.3`,而 `Hua.Todo.Avalonia` 和 `Hua.Todo.Host` 默认使用 `1.0.0`。 - **打包脚本缺失**:目前仅 `Hua.Todo.Maui` 拥有 `setup.iss` (Inno Setup) 打包脚本,版本号硬编码为 `1.2.2`。 - **配置冗余**:版本信息分散在各个 `.csproj` 和 `.iss` 文件中,维护困难。 ## 目标 - 统一所有项目的版本号为 `1.2.3`。 - 采用 `Directory.Build.props` 集中管理全局属性。 - 为 `Hua.Todo.Avalonia` 提供与 `Hua.Todo.Maui` 一致的 Windows 安装程序打包能力。 ## 实施方案 ### 1. 统一 .NET 项目版本号 - 在项目根目录创建 `Directory.Build.props` 文件。 - 定义全局版本号 `1.2.3`。 - 定义全局公司、版权、产品名称等元数据。 - 移除各 `.csproj` 中冲突的版本定义。 ### 2. 统一 Inno Setup 打包脚本 - **更新 `src/Hua.Todo.Maui/setup.iss`**: - 将版本号更新为 `1.2.3`。 - 确保安装路径与应用名称一致。 - **为 `src/Hua.Todo.Avalonia` 创建 `setup.iss`**: - 参考 Maui 的脚本,调整 `Source` 路径为 Avalonia 的发布路径:`bin\Release\net10.0\win-x64\publish\*`。 - 调整可执行文件名称为 `Hua.Todo.Avalonia.exe`。 - 调整 AppId 以避免与 Maui 版本冲突。 ### 3. 发布流程标准化 - 以后发布时,只需修改根目录下的 `Directory.Build.props` 即可同步所有项目的版本。 - 执行 `dotnet publish -c Release -r win-x64` 后,手动或通过脚本运行 `ISCC setup.iss` 生成安装包。 ## 预期效果 - 所有程序集(DLL/EXE)的版本号均显示为 `1.2.3`。 - 提供 `Hua.Todo_Avalonia_Setup_v1.2.3.exe` 和 `Hua.Todo_Maui_Setup_v1.2.3.exe` 两个安装包。