C#/.NET MAUI/Shiny Framework突发需手动设置MainPage的异常问题
问题解决方案
针对NotImplementedException(要求设置App.MainPage或重写CreateWindow)的解决步骤
- 清理编译缓存并重启VS
- 右键解决方案,选择「清理解决方案」
- 手动删除项目根目录下的
bin和obj文件夹 - 关闭Visual Studio,重新打开后再重新生成项目
(注:VS的编译缓存有时会残留错误状态,回滚代码后缓存未更新是这类问题的常见原因)
- 检查App.xaml的构建属性
右键App.xaml文件,打开「属性」面板,确认构建动作设置为ApplicationDefinition,如果被误改为Page或其他值,MAUI无法正确识别应用入口类,会触发该异常
针对无法解析INavigationService的解决步骤
- 确保Shiny导航服务已注册
在MauiProgram.cs中,添加Shiny导航服务的注册代码:
同时要确保调用Shiny的初始化方法:builder.Services.AddShinyNavigation();builder.UseShiny(); - 改用Shiny导航初始化页面,而非直接设置
MainPage
在App.xaml.cs的构造函数中注入INavigationService,通过导航方式打开起始页面,示例代码:public App(INavigationService navService) { InitializeComponent(); _ = navService.NavigateToAsync<YourStartupPage>(); } - 注册目标页面到DI容器
如果你的起始页面需要依赖注入,必须在MauiProgram.cs中注册该页面:
Shiny的导航服务依赖DI容器解析页面实例,未注册页面会导致服务解析失败builder.Services.AddTransient<YourStartupPage>();
内容的提问来源于stack exchange,提问作者ElSploochy
相关产品推荐
相关产品推荐

