Как найти версию приложения, установленного с помощью C # - PullRequest
1 голос
/ 08 июня 2010

Как найти версию установленного приложения, используя c #. Есть ли способ узнать идентификатор компонента приложения?

РЕДАКТИРОВАТЬ: мне нужно получить версию уже установленного приложения. Это необходимо для создания отчета о диагностике на компьютере пользователя.

Пример: версия Outlook 2007, установленная на компьютере пользователя

Ответы [ 3 ]

2 голосов
/ 08 июня 2010

Если вам нужны сборки:

Для текущей сборки:

Assembly.GetExecutingAssembly().GetName().Version

Замените Assembly.GetExecutingAssembly () на экземпляр Assembly, который вы получилидругие средства для определения этой версии.

Один из следующих способов:

Assembly Assembly = Assembly.LoadFrom ("thing.dll ");

Он вернет значение из атрибута AssemblyVersion.

1 голос
/ 08 июня 2010
FileVersionInfo.GetVersionInfo("some.dll");
0 голосов
/ 10 июня 2010

Боюсь, нет единого метода, подходящего для всех приложений. Но для приложения MS Office вы можете получить версию через COM-объекты.

Извините, у меня нет outlook на моем компьютере, поэтому я не могу попробовать его с oulook. Но с помощью Excel и Word это можно сделать так:

Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
Console.WriteLine("Excel: Version-" + excelApp.Version + " Build-" + excelApp.Build);
Console.WriteLine("Word: Version-" + wordApp.Version + " Build-" + wordApp.Build);

Я думаю, что получение версии других приложений MS будет таким же. Удачи.

PS. Не забудьте в конце вызвать Quit () и освободить com-объекты с помощью Marshal.ReleaseComObject () , например,

Marshal.ReleaseComObject(excelApp);
Marshal.ReleaseComObject(wordApp);
...