2013-11-27 2 views
-1

У меня есть несколько файлов, которые у меня есть как встроенные ресурсы приложения WPF. Я бы хотел найти файловые версии этих ресурсов, не записывая их сначала в файл. Это возможно?C# - Получение файловой версии встроенных файлов ресурсов

+0

Ответ на этот вопрос, по-видимому, частично зависит от типа этих файлов. Являются ли эти сборки? Изображений? Если они не являются сборками, как они в настоящее время версируются? – BradleyDotNET

ответ

-1

Я не уверен, что это поможет, но после поиска того, как упаковать мои встроенные ресурсы .DLL в один .exe, я столкнулся с кодом снизу. Вы можете использовать Assembly для сбора встроенных ресурсов, таких как версия файла .DLL. Короче говоря, используя Assembly.Load (byte []), вы можете найти версию файла.

var assemblies = new Dictionary<string, Assembly>(); 
var executingAssembly = Assembly.GetExecutingAssembly(); 
var resources = executingAssembly.GetManifestResourceNames().Where(n => n.EndsWith(".dll")); 

foreach (string resource in resources) 
{ 
    using (var stream = executingAssembly.GetManifestResourceStream(resource)) 
    { 
     if (stream == null) 
      continue; 

     var bytes = new byte[stream.Length]; 
     stream.Read(bytes, 0, bytes.Length); 
     try 
     { 
      //After Assembly.Load is called, you can find the File Version 
      assemblies.Add(resource, Assembly.Load(bytes)); 
     } 
     catch (Exception ex) 
     { 
      System.Diagnostics.Debug.Print(string.Format("Failed to load: {0}, Exception: {1}", resource, ex.Message)); 
     } 
    } 
} 

Некоторый источник может быть найден here.

This также может помочь.

+0

Вы должны добавить точный пример, вместо того, чтобы указывать на потенциальное решение. –

+0

@RanDavidovitz. Я не здесь, чтобы заняться работой в OP, я здесь, чтобы дать направление. Если ОП не может понять, как перебирать словарь и извлекать нужные им данные, у них есть большие проблемы, о которых они должны беспокоиться. Я заявил, что будет работать для меня, и что если это не сработает для OP, чтобы посмотреть на источники, которые я видел, проливают ли они свет. Спасибо, что разъяснил проголосовало. Я слишком ленив, чтобы показать вам, как делается цикл из коллекций. – Kcvin

Смежные вопросы