2017-01-31 13 views
0

...私はすでに発見の結果なしでどこでも検索するので、私は聞いて

私はすでにこれらの2つの方法を試してみてください画像のリソースフォルダのパスを取得します。結果を出さない私のプロジェクトの画像のルートを取得するだけでよい。 助けてください。

+1

に二重のすべてのそれらを検索しますあなたのパス文字列中のバックスラッシュと空白はあなたの結果を投げ捨てるでしょう。 – Abion47

+0

デプロイされたアプリケーションにリソースフォルダがありません – Plutonix

答えて

0

アイテムのビルドアクションが埋め込みリソースに設定されていることを確認してください。

あなたは、これらの2つの方法役立つリソースとassembliesのリストのnameに渡すかもしれない - それは、単純なオーバーライドリソース機能を提供ためにアセンブリ

private static Tuple<Assembly, string> FindEmbeddedResource(string name, params Assembly[] assemblies) 
    { 
     foreach (var assembly in assemblies) 
     { 
      var resourceName = assembly.GetManifestResourceNames().FirstOrDefault(r => r.EndsWith(name)); 

      if (resourceName != null) 
      { 
       return new Tuple<Assembly, string>(assembly, resourceName); 
      } 
     } 

     return new Tuple<Assembly, string>(null, null); 
    } 

    /// <summary> 
    /// Gets the embedded resource scanning assemblies in the order supplied. Allows APIs to override library assets. 
    /// </summary> 
    /// <param name="name">The name.</param> 
    /// <param name="assemblies">The assemblies.</param> 
    /// <returns></returns> 
    private static string GetEmbeddedResource(string name, params Assembly[] assemblies) 
    { 
     var embeddedResource = FindEmbeddedResource(name, assemblies); 
     var assembly = embeddedResource.Item1; 
     var resource = embeddedResource.Item2; 

     if (assembly != null) 
     { 
      var stream = assembly.GetManifestResourceStream(resource); 
      using (var textStreamReader = new StreamReader(stream)) 
      { 
       resource = textStreamReader.ReadToEnd(); 
      } 
     } 

     return resource; 
    } 
+0

ありがとうございますが、変数内の名前のみを検索するにはどうすればよいですか? – Diego

+0

'Image.jpg'が埋め込みリソースの場合は、' yourAssembly.GetManifestResourceNames() 'を使ってコンパイラが何を呼び出すかを知ることができます。 – stevieg

関連する問題