2010-06-08 31 views
1

如何查找使用c#安裝的應用程序的版本。有沒有辦法知道應用程序的組件ID?如何查找使用c安裝的應用程序的版本#

編輯:我需要獲取已安裝應用程序的版本。這是在用戶計算機上生成診斷報告所必需的。

舉例:Outlook 2007中的版本在用戶的計算機

+1

你想當前運行的應用程序的版本或其他應用程序,它是從通過對Marshal.ReleaseComObject()方法釋放COM對象你的程序? – 2010-06-08 09:46:57

+0

是的,請看看有問題的編輯 – 2010-06-08 18:16:12

回答

1
FileVersionInfo.GetVersionInfo("some.dll"); 
+0

這種方法,我們發現應用程序安裝程序/更新應用程序複製的dll(s),並找到dll的版本。 – 2010-06-10 12:26:48

2

上安裝如果這是你組件後:

對於當前組件:

Assembly.GetExecutingAssembly().GetName().Version

替換大會.GetExecutingAssembly()與您通過其他方式獲得的Assembly實例來確定其版本。

一種方式將是:

裝配組件= Assembly.LoadFrom( 「something.dll」);

它將返回AssemblyVersion屬性的值。

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(excelApp); 
Marshal.ReleaseComObject(wordApp); 
相關問題