Я получаю некоторую серьезную странность с помощью FileVersionInfo.GetVersionInfo () и надеялся, что кто-нибудь сможет помочь.
Основой проблемы является то, что я перебираю все файлы в папке, вызывая GetVersionInfo () для каждого. Есть около 300 файлов. Это работает нормально для всех, кроме 2 файлов. Для этих библиотек я получаю совершенно неверную информацию от GetVersionInfo ().
Чтобы исключить все остальные переменные, я извлек этот вызов в простое тестовое приложение, и у него все еще возникла та же проблема. Однако, если я собрал тестовое приложение как приложение Windows (изначально это было консольное приложение), данные вернулись верными.
Просто чтобы уточнить, неверные данные, возвращающиеся при запуске в качестве консольного приложения, - это не просто нулевая информация, как если бы файл не содержал данных о версии. Это содержало разумные данные, но только неправильные данные. Как будто он читает его из другого файла. Я искал файл, который содержит соответствующие данные о версии, но не могу найти.
Почему этот простой вызов работает по-другому, если он создан как консольное приложение, а не как приложение Windows?
Если кто-нибудь может помочь с этим, я был бы очень признателен.
Rgds,
Andy
- Код добавлен
using System;
using System.Diagnostics;
namespace test
{
class Program
{
static void Main(string[] args)
{
string file = "C:\\ProblemFile.dll";
FileVersionInfo version = FileVersionInfo.GetVersionInfo(file);
string fileName = version.FileName;
string fileVersion = version.FileVersion;
Console.WriteLine(string.Format("{0} : {1}", fileName, fileVersion));
}
}
}