3.6 KiB
3.6 KiB
启动问题诊断指南
问题描述
应用编译成功但界面启动不了
已完成的修复
1. XAML编译错误修复 ✅
- 修复了Grid的Padding属性格式错误
- 修复了Grid不支持CornerRadius的问题(改为Border)
- 修复了标签嵌套错误
2. 全局异常处理 ✅
在App.xaml.cs中添加了全局异常处理,现在任何启动错误都会显示消息框
诊断步骤
步骤1:检查编译
dotnet build PetWashControl/PetWashControl.csproj
✅ 编译成功
步骤2:直接运行可执行文件
PetWashControl\bin\Debug\net8.0-windows\PetWashControl.exe
步骤3:查看错误消息
如果应用启动失败,现在会显示错误消息框,包含:
- 错误消息
- 堆栈跟踪
可能的问题和解决方案
问题1:窗口启动但立即关闭
原因:可能是InitializeAsync()中的异常
解决方案:
- 检查日志文件(如果有)
- 查看错误消息框内容
- 检查Modbus/MQTT连接配置
问题2:窗口根本不显示
原因:XAML绑定错误或资源加载失败
解决方案:
-
检查所有图片资源是否存在:
/Images/dog.png/Images/dog1.png/Images/dog2.png/Images/kef.png/Images/liuc.png/Images/liuc1.png/Images/qrcode.png
-
检查转换器是否正确注册
问题3:清理弹窗相关错误
原因:新添加的清理弹窗属性绑定问题
检查项:
IsCleaningDialogOpen属性CleaningMessage属性CleaningProgress属性ProgressToWidthConverter转换器
手动测试步骤
1. 启动应用
双击运行:PetWashControl\bin\Debug\net8.0-windows\PetWashControl.exe
2. 观察启动过程
- 是否显示窗口?
- 是否有错误消息框?
- 窗口是否立即关闭?
3. 如果显示错误消息
记录以下信息:
- 错误消息内容
- 堆栈跟踪
- 发生错误的位置
4. 检查日志
查看是否生成了日志文件,检查其中的错误信息
临时禁用新功能测试
如果需要快速验证是否是清理弹窗导致的问题,可以临时注释掉相关代码:
在MainViewModel.cs中:
// 临时注释这三个属性
// [ObservableProperty]
// private bool _isCleaningDialogOpen;
//
// [ObservableProperty]
// private string _cleaningMessage = "正在清理笼子...";
//
// [ObservableProperty]
// private int _cleaningProgress;
在MainWindow.xaml中:
临时删除或注释清理弹窗部分(2095-2210行)
验证清单
- 编译无错误
- 所有图片资源存在
- 转换器正确注册
- 全局异常处理已添加
- 可以看到错误消息(如果有)
- 日志文件可访问
下一步行动
如果看到错误消息
- 记录完整的错误信息
- 根据错误类型进行针对性修复
如果没有任何反应
- 检查进程管理器中是否有PetWashControl.exe进程
- 检查是否有防火墙或安全软件阻止
- 尝试以管理员身份运行
如果窗口显示但功能异常
- 测试基本功能(套餐选择、支付等)
- 测试洗护流程
- 测试清理弹窗(需要完成洗护流程)
成功启动的标志
✅ 窗口正常显示 ✅ 待机界面可见 ✅ 图片轮播正常 ✅ 时间显示正常 ✅ 温度显示正常 ✅ 可以点击套餐卡片
联系支持
如果问题持续存在,请提供:
- 错误消息的完整截图
- 日志文件内容
- 系统环境信息(Windows版本、.NET版本)
- 具体的操作步骤
创建时间:2026-02-27
版本:v1.0
状态:诊断中