这是VS2010项目(Windows Phone)结构中与任务相关的部分:
代码正在从DummyMediaLibProvider.cs执行:
public class DummyMediaLibProvider: IMediaLibProvider
{
...
StreamResourceInfo albumArtPlaceholder =
Application.GetResourceStream(
new Uri("../Images/artwork.placeholder.png", UriKind.Relative));
artwork.placeholder.png
构建操作设置为内容。
但是,每当我运行代码时,Application.GetResourceStream
都会返回null。
资源无法读取内存的原因可能是什么?
我试图删除项目的obj目录,做了Clean和Rebuild,但到目前为止没有任何帮助。
更新
如果我将Build Action:Resource应用于artwork.placeholder.png,我可以获得资源流。
P.S。这不是Application.GetContentStream returns null for content Uri的重复,因为上一次有扩展(particurarly .xml)相关的问题。
答案 0 :(得分:21)
提供的路径Application.GetResourceStream
不是相对于类的位置,而是相对于应用程序包。
StreamResourceInfo albumArtPlaceholder =
Application.GetResourceStream(
new Uri("Images/artwork.placeholder.png", UriKind.Relative));
将是正确的道路。您还可以尝试使用完整包URI。 (see MSDN)
最后,Resource
将是正确的Build Action
。