Visual Studio 2017构建UWP应用报错:无法找到指定XAML类型
解决UWP构建时找不到XamlCompositionBrushBase的问题
首先,咱们先拆解下这个错误的核心原因:Windows.UI.Xaml.Media.XamlCompositionBrushBase这个类是**Windows 10 Creators Update(版本15063)**的SDK才新增的类型,而你当前依赖的14393版本SDK里根本没有这个类,再加上平台版本设置不匹配,就出现了各种报错。结合你已经尝试过的操作,给你几个针对性的解决方向:
1. 调整项目的平台版本配置
右键你的UWP项目 → 打开「属性」→ 切换到「应用程序」标签页:
- 如果项目不需要兼容14393及更早版本,直接把目标平台版本和最低平台版本都设置为15063或更高(比如17763、19041等你已安装的SDK版本)
- 要是必须兼容14393,那不能直接用
XamlCompositionBrushBase,得做版本适配:比如用条件编译判断系统版本,低版本替换成传统Brush实现,或者用反射动态创建这个类(不过这种方式比较繁琐)
2. 修复Windows SDK安装
有时候VS的SDK可能安装不完整或损坏:
- 打开Visual Studio安装器,找到你的VS2017实例,点击「修改」
- 在「单个组件」里找到「Windows 10 SDK(15063)」或更高版本,确保勾选后点击「修改」进行修复安装
- 安装完成后,手动删除项目根目录的
.vs文件夹、bin和obj文件夹,再重新打开项目清理重建
3. 检查项目文件的.targets引用路径
项目可能错误引用了旧版本的SDK目标文件:
- 右键项目 → 「卸载项目」,再右键卸载后的项目 → 「编辑项目文件」(.csproj或.vbproj)
- 查找包含
Microsoft.Windows.UI.Xaml.Common.targets的行,确认路径指向的是正确版本的SDK,比如:<Import Project="$(MSBuildProgramFiles32)\Windows Kits\10\bin\10.0.15063.0\Xaml\Microsoft.Windows.UI.Xaml.Common.targets" /> - 如果路径里的版本号是14393,改成你已安装的更高版本,保存后重新加载项目构建
4. 用新项目排查配置问题
如果以上都没效果,试试创建一个全新的UWP项目:
- 设置新项目的目标和最低平台版本为15063+,确认能正常构建
- 逐步把现有项目的代码、资源复制到新项目里,每次复制后构建一次,排查是不是某个文件或配置导致的问题
内容的提问来源于stack exchange,提问作者Archerofyail
相关产品推荐
相关产品推荐

