С System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
вы получаете список всех ресурсов в вашем проекте.
Теперь, если вы хотите найти все exe-файлы (полагаю, у вас есть только один встроенный файл), используйте следующий фрагмент, чтобы получить имя вашей сборки.
var ressourceList = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
var filename = ressourceList.Where(x => x.EndsWith(".exe")).FirstOrDefault();
Формат строки "YourProgram.YourAssemblyName.exe"
, поэтому просто удалите первую часть этой строки, и у вас будет встроенное имя файла ресурса.
Редактировать: Почему бы вам не перечислить свои ресурсы и не удалить лидирующее пространство имен + конечные расширения файлов?
// returns just the names
public static IEnumerable<String> GetEmbeddedResourceNames()
{
var returnList = new List<String>();
foreach (var res in Assembly.GetExecutingAssembly().GetManifestResourceNames())
{
var s = Assembly.GetExecutingAssembly().GetName();
returnList.Add(Regex.Replace(res.Replace(s.Name + ".", ""), @"\.[^.]*$", ""));
}
return returnList;
}
Редактировать:
Чтобы получить ресурс по имени, используйте var prop = Properties.Resources.ResourceManager.GetObject("YourRessourceNameWithoutExtension");