You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ms-appx:///引用图片时出现URI前缀不识别报错怎么解决?

报错 System.NotSupportedException: 'The URI prefix is not recognized.' 解决方案

核心触发原因

ms-appx:/// 是UWP/WinUI 3项目专属的资源访问URI前缀,若当前项目为WPF/WinForms/.NET MAUI等其他类型,使用该前缀会直接触发不识别报错;即使是UWP/WinUI 3项目,路径或文件属性配置错误也可能触发该问题。


分场景解决方法

场景1:当前项目为WPF

替换为WPF支持的资源路径写法即可:

// 写法1:相对路径(需提前配置图片属性)
HoverBanner.Source = new BitmapImage(new Uri("/Assets/testimg.jpg", UriKind.Relative));

// 写法2:Pack URI(兼容性更强)
HoverBanner.Source = new BitmapImage(new Uri("pack://application:,,,/Assets/testimg.jpg"));

同时确认图片文件属性配置:

  • 右键点击testimg.jpg → 选择「属性」
  • 生成操作设置为Resource
  • 复制到输出目录可设置为不复制(Resource模式下无需输出到目录)

场景2:当前项目为UWP/WinUI 3

依次检查以下配置:

  1. 确认Assets文件夹位于项目根目录,testimg.jpg直接存放在Assets文件夹下无嵌套
  2. 图片属性中生成操作设置为内容,复制到输出目录设置为如果较新则复制
  3. 可尝试简化URI写法规避解析问题:
HoverBanner.Source = new BitmapImage(new Uri("Assets/testimg.jpg", UriKind.Relative));

场景3:兜底验证方案

如果以上方法都无效,可先用绝对路径验证图片本身可正常读取:

// 替换为你本地testimg.jpg的实际完整路径
var imgFullPath = @"C:\YourProjectPath\Assets\testimg.jpg";
if (File.Exists(imgFullPath))
{
    HoverBanner.Source = new BitmapImage(new Uri(imgFullPath));
}

如果绝对路径可正常加载图片,即可确定是相对路径/URI前缀配置错误,回到对应项目场景调整即可。


内容的提问来源于stack exchange,提问作者Blue Nova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:15:04