Blazor Server二次热重载抛出System.BadImageFormatException问题求助
解决Blazor Server .NET8第二次热重载抛出System.BadImageFormatException的问题
排查方向与解决方案
- 混合架构不匹配:由于同时启动.NET 4.5(默认多为x86架构)与.NET 8项目,两者目标架构冲突可能导致热重载时程序集加载异常。
- 右键.NET 4.5项目→属性→生成→目标平台,设置为与.NET 8项目一致(如
x64) - 打开解决方案配置管理器,确认所有启动项目的平台统一
- 右键.NET 4.5项目→属性→生成→目标平台,设置为与.NET 8项目一致(如
- YARP代理兼容性与缓存问题:并行升级过程中YARP可能残留.NET7配置或缓存干扰程序集替换:
- 删除项目的
bin、obj文件夹,清理NuGet缓存(执行命令:dotnet nuget locals all --clear) - 检查项目文件中YARP包版本,升级至适配.NET8的最新稳定版
- 删除项目的
- 增量编译缓存残留:升级后项目的增量编译缓存可能存在版本不一致:
- 删除解决方案根目录下的
.vs隐藏文件夹 - 重启Visual Studio后重新生成整个解决方案
- 删除解决方案根目录下的
- 热重载配置异常:检查Blazor Server项目的
launchSettings.json:- 确认
hotReloadProfile设置为aspnetcore,移除.NET7残留的热重载相关环境变量
- 确认
验证步骤
- 单独启动.NET 8 Blazor Server项目,测试多次热重载是否正常
- 若单独启动无问题,统一两个项目的目标架构后再次测试
- 逐步添加YARP配置,排查是否为代理特定配置引发冲突
内容的提问来源于stack exchange,提问作者Fabio
相关产品推荐
相关产品推荐

