Меня беспокоило, что это было невозможно сделать, поэтому я немного покопался и нашел способ получения списка всех файлов изображений с помощью действия по сборке «Ресурс». - Да, это не совсем то, о чем просили, но, надеюсь, это все равно будет полезно.
Если вам действительно нужно использовать действие сборки «Содержимое», я бы использовал скрипт T4 для генерации списка файлов во время сборки. (Это то, что я делаю с одним из моих проектов, и он отлично работает.)
Предполагая, что изображения находятся в папке с именем "images", вы можете получить их с помощью следующего:
var listOfImageResources = new StringBuilder();
var asm = Assembly.GetExecutingAssembly();
var mrn = asm.GetManifestResourceNames();
foreach (var resource in mrn)
{
var rm = new ResourceManager(resource.Replace(".resources", ""), asm);
try
{
var NOT_USED = rm.GetStream("app.xaml"); // without getting a stream, next statement doesn't work - bug?
var rs = rm.GetResourceSet(Thread.CurrentThread.CurrentUICulture, false, true);
var enumerator = rs.GetEnumerator();
while (enumerator.MoveNext())
{
if (enumerator.Key.ToString().StartsWith("images/"))
{
listOfImageResources.AppendLine(enumerator.Key.ToString());
}
}
}
catch (MissingManifestResourceException)
{
// Ignore any other embedded resources (they won't contain app.xaml)
}
}
MessageBox.Show(listOfImageResources.ToString());
Это просто отображает список имен, но, надеюсь, будет легко изменить это, чтобы делать все, что вам нужно.
Будем весьма благодарны за любые предложения по улучшению этого кода.