Intereting Posts
Программно установите источник изображения (XAML) Как использовать IVsFontAndColorEvents? Сопоставление структуры фреймов объектов между представлением и таблицей Какова общая версия Hashtable? Динамически применять правила проверки во время выполнения с помощью ASP.NET MVC 4 Интервал позиций в ListView, где View = List Entity Framework: добавление существующего дочернего POCO к новому Parent POCO, создание нового дочернего элемента в DB Существует ли стандартный C ++ эквивалент IEnumerable в C #? SSH.NET passwd не выполняется c # ProcessStartInfo.Start – чтение вывода, но с таймаутом Сравнение объектов в .net Вырезание формы с помощью ключей, начинающихся с определенной строки .net C #, какова наилучшая практика для обеспечения безопасности каждого метода? Отражение всех свойств интерфейса, включая унаследованные? Это лучший способ в C # преобразовать строку с разделителями в массив int?

Получить версию из неисполнения исполняемого файла

Я знаю, как получить версию исполняемого приложения или dll. Однако мне нужно найти свойства неисполняющего приложения.

У меня есть небольшая программа для установки ассоциации файлов для моего основного приложения. Для пользователей старых версий не существует смысла, поскольку приложение не принимает аргументы при запуске. Поэтому при запуске файлового ассоциатора он сначала проверяет, может ли он найти основное приложение. Если это возможно, я хочу проверить свойства без его выполнения. Если версия более ранняя, чем одна, которая может принимать аргументы, я хочу сообщить моему пользователю о необходимости обновления, а не приступить к настройке ассоциации.

Я просмотрел System.IO.FileInfo, но, похоже, не содержит никакой информации о версии.

Спасибо

Вы можете использовать FileVersionInfo.GetVersionInfo() :

 FileVersionInfo vi = FileVersionInfo.GetVersionInfo("myfile.dll"); 

string showVersion = vi.FileVersion;

// showVersion – это фактическая версия №.

Это возвращает метаданные файла / документа и может использоваться для неуправляемых библиотек DLL или даже для документов Word .

Вы также можете использовать Assembly:

 Version v = Assembly.ReflectionOnlyLoadFrom("myfile.dll").GetName().Version; 

Это будет содержать. NET версия .