【发布时间】:2012-06-15 20:39:24
【问题描述】:
我读过很多例子。我所拥有的似乎是正确的。但是加载失败。
这是我的代码:
LargeImage=new BitmapImage(new Uri("pack://application:,,,/Images/books_48.png"))
此代码在 AssemblyA 中运行。 AssemblyA 的项目中还有一个名为 Images 的文件夹。该文件夹有一个名为 books_48.png 的文件。它被设置为编译为“资源”并且从不复制。
我使用 DotPeek 查看 Image 是否在 AssemblyA.dll 中并且它在那里。
对LargeImage 的第一个引用在AssemblyB 中。它将 LargeImage 绑定到 FluentRibbon Fluent:Button.LargeIcon。
在加载 BitmapImage 时出现此错误:
找不到资源“images/books_48.png”。
关于如何加载此内容的任何想法?
注意:我也试过这些:
"pack://application:,,,/AssemblyA;component/Images/books_48.png"
"pack://application:,,,/AssemblyA;Images/books_48.png"
"pack://application:,,,/AssemblyA;/Images/books_48.png"
"pack://application:,,,/Images/books_48.png"
"pack://application:,,,Images/books_48.png"
"Images/books_48.png"
"/Images/books_48.png"
它们都给我错误(“找不到”或“无效 URI”之类的错误)。
【问题讨论】:
-
不应该是嵌入资源吗?
-
@PaulSullivan - 在这个答案的 cmets (stackoverflow.com/a/483891/16241) 中,人们似乎在说嵌入式资源在 99% 的情况下都是错误的。关于在应用中包含两次图像的一些事情。
-
是的,据我所知,它应该只是资源。 Vaccano - 程序集 B 是否引用程序集 A?还是它们都加载到另一个可执行文件中......或者?