Microsoft.Toolkit升级7.1后.Net Native打包报CS0234错误如何解决
报错原因及解决方案
根本原因
Microsoft.Toolkit 7.1版本对UWP控件包做了模块化拆分调整,7.0版本中内置在Microsoft.Toolkit.Uwp.UI.Controls主包内的Core、Input、Media子命名空间对应的代码,已经被拆分到独立的NuGet分包中,不再随主包默认分发。
Debug模式下不会执行严格的程序集依赖校验、类型裁剪流程,升级后残留的旧版本临时引用、未清理的obj目录缓存足够支撑程序正常运行;而.Net Native编译阶段会扫描所有XAML引用类型的完整程序集依赖,找不到对应分包时就会在自动生成的XamlTypeInfo.g.cs文件中触发命名空间不存在的报错。
解决步骤
- 首先清理项目缓存:删除项目根目录下的
bin、obj文件夹,清除旧版本的残留引用干扰 - 按需安装拆分后的独立NuGet包:
- 使用到Core模块相关控件,安装
Microsoft.Toolkit.Uwp.UI.Controls.Core - 使用到Input模块相关控件,安装
Microsoft.Toolkit.Uwp.UI.Controls.Input - 使用到Media模块相关控件,安装
Microsoft.Toolkit.Uwp.UI.Controls.Media
- 使用到Core模块相关控件,安装
- 重新执行.Net Native编译即可解决问题
内容的提问来源于stack exchange,提问作者Hong
相关产品推荐
相关产品推荐

