BitmapImage文件在构建时未发现异常(PresentationCore.resources)

本文关键字:PresentationCore resources 异常 未发现 文件 构建 BitmapImage | 更新日期: 2023-09-27 18:08:27

我在wpf中有一个BitmapImage的问题。当我创建它时,它给出了一个filenotfound异常,它说它缺少PresentationCore。资源组装。但是我已经把它添加到我的引用列表,它仍然抛出相同的异常

Uri filename = new Uri(@"D:'barcode_zwart_wit.jpg", UriKind.Absolute);
BitmapImage image = new BitmapImage(filename); //<-- FileNotFound Exception

  • 图片没有在其他地方打开
  • 我已经检查了PresentationCore的版本。

    这些行位于属性的setter中,它首先在usercontrol的构造函数中启动。Visual Studio 2010, .net v4
有谁知道是什么问题吗?PresentationCore。资源有我不知道的依赖关系吗?

BitmapImage文件在构建时未发现异常(PresentationCore.resources)

问题可能是图像的颜色配置文件不可用。使用BitmapImage。属性来忽略颜色配置文件信息,如下所示:

var bmp = new BitmapImage();
bmp.BeginInit();
bmp.CreateOptions = BitmapCreateOptions.IgnoreColorProfile;
bmp.UriSource = uri;
bmp.EndInit();
// Use the bmp variable for further processing and dispose it

我有同样的问题与一些.jpg图像,这解决了它。

我通过使用AppDomain.CurrentDomain.AssemblyResolve解决了这个问题。如果找不到某个程序集,就会调用这个事件。

在构造函数:

AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);

CurrentDomain_AssemblyResolve:

Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
    string missingAssemblyName = args.Name.Remove(args.Name.IndexOf(',');
    if ( missingAssemblyName == "PresentationCore.resources" )
    {
         string s = "C:'Program Files'Reference Assemblies'Microsoft'Framework'.NETFramework'v4.0'PresentationCore.resources.dll";
         return Assembly.LoadFile(s);
    }
    return;
}
相关文章:
  • 没有找到相关文章