如何使用c#查找已安装的应用程序的版本。有没有办法知道应用程序的组件ID?
编辑:我需要获取已安装的应用程序的版本。这是在用户计算机上生成诊断报告所必需的。
示例:安装在用户计算机上的Outlook 2007版本
答案 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);