2012-04-25 38 views
3

我使用休耕代碼來獲取Windows GAC文件夾中一組彙編的版本。反射:彙編獲取版本給出錯誤的版本值

FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location); 
       string productVersion = fvi.ProductVersion; 

運行上述代碼之後,我mannualy RightClick並獲取程序集版本。 productVersion返回的版本與手動獲取的值不同,部分程序集。 任何可能的原因?

+0

你檢查嗎? http://stackoverflow.com/questions/5460199/fileversioninfo-fileversion-returns-productversion – 2012-04-25 06:56:19

+0

一個差異的例子(預期與實際)將有所幫助... – 2012-04-25 07:02:13

+0

版本返回是15.0.xxxx.10000,但實際版本是15.0 .yyyy.1000。當我安裝了它的xxxx版本的應用程序,然後取消安裝它,然後安裝該應用程序的yyyy版本時,會發生這種情況。安裝應用程序的yyyy版本後,所有的dll都應該是yyyy版本。手動檢查時確定。但是,這種不匹配發生在編程檢查版本時。 – 2012-04-25 08:49:03

回答

4

對於裝配對象使用的文件版本:

var assembly = System.Reflection.Assembly.GetExecutingAssembly(); // the current assembly 

var version = assembly.GetName().Version.ToString(); 
+0

這給出了結果15.0.0.0這不是我想要的。我想要的產品版本是15.0.yyyy.1000 – 2012-04-25 09:14:35

+0

幸運的是,這是我想要的:) – JDPeckham 2012-09-22 16:22:45