2011-09-12 28 views
9

這裏是VS2010項目(Windows phone)系統結構的任務相關的部分:Application.GetResourceStream呼籲內容資源仍然返回null

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都會返回null。

資源沒有被讀入內存的原因可能是什麼?

我試圖刪除項目的obj目錄,乾淨和重建,但迄今沒有任何幫助。

更新:

如果我申請生成操作:資源來artwork.placeholder.png,我能確定的資源流雖然。

P.S.這不是Application.GetContentStream returns null for content Uri的重複,因爲上一次有擴展名(particurarly .xml)相關的問題。

回答

19

提供的路徑Application.GetResourceStream與類的位置不相關,但與應用程序包相關。

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

會是正確的路徑。您也可以嘗試使用完整包的URI。 (see MSDN

最後,Resource將是正確的Build Action爲此。

+6

刪除最初的'/'對我來說意味着什麼。我也將我的內容設置爲'Content'而不是'Resources'(在構建之後使用7-Zip檢查xap以驗證文件是否包含在內)。 –

+0

我失去了將近一個小時,直到我發現我的問題:在設置生成操作的位置,還必須確保已啓用「複製到輸出目錄」選項。 –