我问是因为我已经到处搜索但没有找到结果...
我已经尝试了以下两种方法:
//first attempt
Var filePath = System.Reflection.Assembly.GetExecutingAssembly (). Location + @"\..\..\Resources\Image.jpg";
//Second attempt
System.Reflection.Assembly.GetExecutingAssembly (). GetManifestResourceNames ();
已经探究了这些方法并没有给出结果,我只需要获取项目图像的路径即可。请帮助。
确保您的项目的“生成操作”设置为“嵌入式资源”。
您可能会发现这两种方法很有用,传入name
资源和列表assemblies
-它会按顺序搜索程序集,从而提供简单的覆盖资源功能
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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句