如何查找使用c#安裝的應用程序的版本。有沒有辦法知道應用程序的組件ID?如何查找使用c安裝的應用程序的版本#
編輯:我需要獲取已安裝應用程序的版本。這是在用戶計算機上生成診斷報告所必需的。
舉例:Outlook 2007中的版本在用戶的計算機
如何查找使用c#安裝的應用程序的版本。有沒有辦法知道應用程序的組件ID?如何查找使用c安裝的應用程序的版本#
編輯:我需要獲取已安裝應用程序的版本。這是在用戶計算機上生成診斷報告所必需的。
舉例:Outlook 2007中的版本在用戶的計算機
FileVersionInfo.GetVersionInfo("some.dll");
這種方法,我們發現應用程序安裝程序/更新應用程序複製的dll(s),並找到dll的版本。 – 2010-06-10 12:26:48
上安裝如果這是你組件後:
對於當前組件:
Assembly.GetExecutingAssembly().GetName().Version
替換大會.GetExecutingAssembly()與您通過其他方式獲得的Assembly實例來確定其版本。
一種方式將是:
裝配組件= Assembly.LoadFrom( 「something.dll」);
它將返回AssemblyVersion屬性的值。
沒有適用於所有應用程序的統一方法。但對於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);
你想當前運行的應用程序的版本或其他應用程序,它是從通過對Marshal.ReleaseComObject()方法釋放COM對象你的程序? – 2010-06-08 09:46:57
是的,請看看有問題的編輯 – 2010-06-08 18:16:12