如何在WinUI 3桌面端使用Prism MVVM及解决引用报错
问题解答
1. 依赖包引用正确性判断
你此前的认知有误,Prism.Uno是专为Uno跨平台框架提供的Prism适配包,不适用于原生WinUI 3桌面项目,这也是你遇到类型冲突报错的核心原因。
Prism官方原生支持WinUI 3,对应的依赖包分两种,可按你使用的依赖注入容器选择:
Prism.DryIoc.WinUI(基于DryIoc容器,官方推荐默认选项)Prism.Unity.WinUI(基于Unity容器)
2. CS0433错误解决步骤
该报错是因为Prism.Uno携带的Uno.Foundation依赖库和WinUI 3项目默认引用的Microsoft.Windows.SDK.NET存在同名类型冲突,按以下步骤操作即可解决:
- 打开包管理器控制台,先卸载错误引用的Prism.Uno包:
Uninstall-Package Prism.Uno -RemoveDependencies - 卸载完成后,清理项目的bin、obj文件夹,确保残留的Uno相关引用被完全清除
- 安装对应WinUI 3的Prism包,以DryIoc版本为例:
Install-Package Prism.DryIoc.WinUI - 重新生成解决方案即可消除冲突报错
3. 额外注意事项
- 如果你使用的是高于1.0版本的Windows App SDK,Visual Studio 2019已经不支持官方维护的适配版本,若后续遇到兼容问题可升级至Visual Studio 2022
- 安装Prism.WinUI系列包时注意选择和你项目Windows App SDK版本匹配的包版本,避免出现版本不兼容问题
内容的提问来源于stack exchange,提问作者Ann Michael
相关产品推荐
相关产品推荐

