如何查找使用c#安装的应用程序的版本

时间:2010-06-08 09:43:04

标签: c# windows installer windows-installer

如何使用c#查找已安装的应用程序的版本。有没有办法知道应用程序的组件ID?

编辑:我需要获取已安装的应用程序的版本。这是在用户计算机上生成诊断报告所必需的。

示例:安装在用户计算机上的Outlook 2007版本

3 个答案:

答案 0 :(得分:2)

如果是你的装配:

对于当前的程序集:

Assembly.GetExecutingAssembly().GetName().Version

将Assembly.GetExecutingAssembly()替换为您通过其他方式获得的Assembly实例,以确定其版本。

一种方法是:

  

Assembly assembly = Assembly.LoadFrom(“something.dll”);

它将从AssemblyVersion属性返回值。

答案 1 :(得分:1)

FileVersionInfo.GetVersionInfo("some.dll");

答案 2 :(得分:0)

没有统一的方法适合我担心的所有应用程序。但是对于MS office应用程序,您可以通过COM对象获得版本。

抱歉,我的电脑没有外观,所以我不能用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。不要忘记最后调用退出()并通过 Marshal.ReleaseComObject()方法释放com对象,如

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