Application.GetResourceStream, вызываемый на ресурсе контента, по-прежнему возвращает ноль - PullRequest
10 голосов
/ 13 сентября 2011

Вот часть задачи проекта VS2010 (Windows Phone), относящаяся к задаче:

enter image description here

Код выполняется из DummyMediaLibProvider.cs:

public class DummyMediaLibProvider: IMediaLibProvider
{
    ...
    StreamResourceInfo albumArtPlaceholder = 
        Application.GetResourceStream(
            new Uri("../Images/artwork.placeholder.png", UriKind.Relative));

artwork.placeholder.png Действие построения установлено на Содержимое .

Тем не менее, всякий раз, когда я запускаю код, Application.GetResourceStream возвращает ноль.

В чем может быть причина того, что ресурс не читается в память?

Я попытался удалить директорию obj проекта, сделал Очистку и Перестройку, но пока ничего не помогло.

Обновление:

Если я применю Build Action: Resource к artwork.placeholder.png, я смогу получить поток ресурсов нормально.

P.S. Это не дубликат Application.GetContentStream возвращает ноль для содержимого Uri , так как последний имел проблему, связанную с расширением (особенно .xml).

1 Ответ

21 голосов
/ 13 сентября 2011

Указанный путь Application.GetResourceStream относится не к положению класса, а к пакету приложения.

StreamResourceInfo albumArtPlaceholder = 
    Application.GetResourceStream(
        new Uri("Images/artwork.placeholder.png", UriKind.Relative));

Будет правильным путем.Вы также можете попробовать с полным URI пакета.( см. MSDN )

И, наконец, Resource будет правильным Build Action для этого.

...